全域性使用axios

2022-03-08 06:58:18 字數 1469 閱讀 2196

今天做專案時看到一篇很棒的文章所以就摘錄下來,方便日後翻閱學習

vue 原本有乙個官方推薦的 ajax 外掛程式 vue-resource

但是自從 vue 更新到 2.0 之後,尤雨溪宣布停止更新vue-resource,並推薦大家使用axios之後,越來越多的 vue 專案,都選擇 axios 來完成 ajax 請求,而大型專案會使用 vuex 來管理資料,

之前一直使用的是 vue-resource外掛程式,在主入口檔案引入import vueresource from 'vue-resource'之後,直接使用vue.use(vueresource)之後即可將該外掛程式全域性引用了;

初用axios時,無腦的按照上面的步驟進行全域性引用,結果當時是慘慘的。 看了看文件,axios 是乙個基於 promise 的 http 庫

axios並沒有install 方法,所以是不能使用vue.use()方法的。

那麼難道每個檔案都要來引用一次?解決方法有很多種:

1.結合 vue-axios使用

2. axios 改寫為 vue 的原型屬性

3.結合 vuex的action

1.結合 vue-axios使用

看了vue-axios的原始碼,它是按照vue外掛程式的方式去寫的。那麼結合vue-axios,就可以去使用vue.use方法了

首先在主入口檔案main.js中引用

import axios from 'axios'

import vueaxios from 'vue-axios'

vue.use(vueaxios,axios);

之後就可以使用了,在元件檔案中的methods裡去使用了

getnewslist()).catch((response)=>)

},2.axios 改寫為 vue 的原型屬性首先在主入口檔案main.js中引用,之後掛在vue的原型鏈上

import axios from 'axios'

vue.prototype.$ajax= axios

在元件中使用

this.$ajax.get('api/getnewslist').then((response)=>).catch((response)=>)

3.結合 vuex的action 在vuex的倉庫檔案store.js中引用,使用action新增方法

import vue from 'vue'

import vuex from 'vuex'

import axios from 'axios'

vue.use(vuex)

const store = new vuex.store(

},actions: )}}

})export default store

在元件中傳送請求的時候,需要使用 this.$store.dispatch

methods:

}

axios 全域性攔截

import axios from axios import from auth import from element ui import store from store const service axios.create 請求 interceptors.requst 是指可以攔截每次或指定h...

axios全域性配置

axios的全域性配置 有時候,我們在乙個專案中需要傳送多個請求,到那時這些請求的配置內容大部分是一樣的,如url相同,只不過傳送的資料不同,比如,post請求時,請求頭等資訊都是不變的 此時,我們就需要反覆的書寫這些相同的配置,為了解決這些問題,我們引入了axios全域性預設配置 示例 axios...

vue全域性使用axios的方法

在vue專案開發中,我們使用axios進行ajax請求,很多人一開始使用axios的方式,會當成vue resoure的使用方式來用,即在主入口檔案引入import vueresource from vue resource 之後,直接使用vue.use vueresource 之後即可將該外掛程式...