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