前言:
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()方法的。看了vue-axios的原始碼,它是按照vue外掛程式的方式去寫的。那麼結合vue-axios,就可以去使用vue.use方法了那麼難道每個檔案都要來引用一次?解決方法有很多種:
1.結合 vue-axios使用
2. axios 改寫為 vue 的原型屬性
3.結合 vuex的action
首先在主入口檔案main.js中引用
import axios from
'axios'
import vueaxios from
'vue-axios'
vue.use(vueaxios,axios);
之後就可以使用了,在元件檔案中的methods裡去使用了
getnewslist()).catch
((response)=>)
},
首先在主入口檔案main.js中引用,之後掛在vue的原型鏈上
import axios from
'axios'
vue.prototype.$ajax= axios
在元件中使用
this.$ajax.get('api/getnewslist').then
((response)=>).catch
((response)=>)
結合 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:
}
vue踩坑之全域性使用axios
之前一直使用的是 vue resource外掛程式,在主入口檔案引入import vueresource from vue resource 之後,直接使用vue.use vueresource 之後即可將該外掛程式全域性引用了 初用axios時,無腦的按照上面的步驟進行全域性引用,結果當時是慘慘的...
axios使用踩坑
1 params和data 1 params params一般用於和url拼接,用於get請求,比如 axios.get user?id 12345 就等價於 axios.get user 2 data data請求是新增在請求體裡的,也就是body中,用於post請求。2 請求頭相關 1 post...
vue全域性使用axios的方法
在vue專案開發中,我們使用axios進行ajax請求,很多人一開始使用axios的方式,會當成vue resoure的使用方式來用,即在主入口檔案引入import vueresource from vue resource 之後,直接使用vue.use vueresource 之後即可將該外掛程式...