axios是vue-resource后出現的Vue請求數據的插件。vue更新到2.0之后,作者尤大就宣告不再對vue-resource更新,而是推薦的axios。
下面我們來使用axios
npm install axios --save-dev
import axios from "axios"
這時候如果在其它的組件中,是無法使用 axios 命令的。但如果將 axios 改寫為 Vue 的原型屬性,就能解決這個問題
1. Vue.prototype.$ajax=axios
好像還有另外一種方法,是不需要去修改Vue的原型的,那就是我們除了npm install安裝axios依賴以外,再去安裝一個vue-axios
npm install vue-axios --save-dev
import Vueaxios from "vue-axios"
我都是用第一種方法的,這種沒試過,有興趣大家可以去試試。
在 main.js 中添加了這兩行代碼之后,就能直接在組件的 methods 中使用 $ajax 命令
methods: { submitForm () { this.$ajax({ method: 'post', url: '你的請求url', data: { name: 'haha',' } }) }
上述只是寫了發起請求,並沒有請求返回數據的回調。
.then(function(res){ console.log(res) }) .catch(function(err){ console.log(err) })
這是axios的回調函數,.then為請求成功的回調函數,而.catch為請求失敗的回調函數
這兩個回調函數都有各自獨立的作用域,如果直接在里面訪問 this,無法訪問到 Vue 實例,怎么辦嘞????
只要添加一個 .bind(this) 就能解決這個問題
.then(function(res){ console.log(this.data) }.bind(this))
像這樣,這樣。。。。還有這樣。。。。。。