vue调用后端接口——axios和vue-axios的使用
vue本身不支持发送AJAX请求,需要使用vue-resource、axios等插件实现 axios是一个基于Promise的HTTP请求客户端,用来发送请求,也是vue2.0官方推荐的,同时不再对vue-resource进行更新和维护 参考:GitHub上搜索axios,查看API文档:https://github.com/axios/axios
axios和vue-axios区别
1、axios是基于promise的HTTP库,可以使用在浏览器和node.js中,它不是vue的第三方插件 2、axios使用的时候不能像vue的插件(如:Vue-Router、VueX等)通过Vue.use()安装插件,需要在原型上进行绑定:Vue.prototype.$axios = axios; 3、vue-axios是axios集成到Vue.js的小包装器,可以像插件一样安装:Vue.use(vueAxios);
注意: 使用vue的插件的写法(vue-axios)更符合vue整体的生态环境,直接写原型链会有些粗暴,且直接写原型链你取名为$http,你的项目成员可能取另外的名字,维护起来比较麻烦,而统一使用vue-axios就没有太多歧义
axios的使用
安装
输入命令
# 安装axios npm install axios -S
引入
修改main.js文件
import Vue from vue
import ElementUI from element-ui;
import element-ui/lib/theme-chalk/index.css;
import App from ./App.vue
import axios from axios
Vue.use(ElementUI);
Vue.use(axios);
Vue.config.productionTip = false
new Vue({
render: h => h(App),
}).$mount(#app)
使用
1.执行get请求
axios.get(/user, {
params: {
ID: 12345
}
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
2.执行 post请求
axios.post(/user, {
firstName: Fred,
lastName: Flintstone
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
3.执行多个并发请求
function getUserAccount() {
return axios.get(/user/12345);
}
function getUserPermissions() {
return axios.get(/user/12345/permissions);
}
axios.all([getUserAccount(), getUserPermissions()])
.then(axios.spread(function (acct, perms) {
// 两个请求现在都执行完成
}));
vue-axios的使用
安装
# 安装axios npm install axios -S # 安装vue-axios npm install --save axios vue-axios
引入
修改main.js文件
import Vue from vue
import ElementUI from element-ui;
import element-ui/lib/theme-chalk/index.css;
import App from ./App.vue
import axios from axios
import VueAxios from vue-axios
Vue.use(ElementUI);
Vue.use(VueAxios, axios);
Vue.config.productionTip = false
new Vue({
render: h => h(App),
}).$mount(#app)
使用
用法1:
Vue.axios.get(url,{
params:userId:1}).then(res => {
}).catch(err => {
});
用法2:
this.axios.get(url,{
params:userId:1}).then(res => {
}).catch(err => {
});
用法3:
this.$http.get(url,{
params:userId:1}).then(res => {
}).catch(err => {
});
