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