axios 全局配置 3 种方法:
- 结合
vue-axios
使用 -
axios
改写为Vue
的原型属性 - 结合
Vuex
的action
结合vue-axios
使用:
首先要安装项目所需要的依赖:axios
和vue-axios
npm install axios --save-dev --registry=https://registry.npm.taobao.org
npm install vue-axios --save-dev --registry=https://registry.npm.taobao.org
第1种方法:首先在入口文件main.js中引入
import axios from 'axios'
import VueAxios from 'vue-axios'
Vue.use(VueAxios)
然后就可以使用了,在你需要请求接口的地方使用
this.axios.get('api/getDataList').then((res)=>{
this.dataList=res.data.data;
}).catch((err)=>{
console.log(err);
})
第2种方法:axios改写为Vue的原型属性
首先在入口文件main.js中引入,然后挂在Vue的原型上
import axios from 'axios'
Vue.prototype.axios = axios
在你需要请求接口的地方使用
this.axios.get('api/getDataList').then((res)=>{
this.dataList=res.data.data;
}).catch((err)=>{
console.log(err);
})
第3种方法:结合 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({
// 定义状态
state: {
user: {
name: 'kimi'
}
},
actions: {
// 封装一个 ajax 方法
login (context) {
axios({
method: 'post',
url: '/register',
data: context.state.user
})
}
}
})
export default store
在组件中发送请求的时候,需要使用 this.$store.dispatch
methods: {
submitForm () {
this.$store.dispatch('register')
}
}
第二种方法,很方便~~
网友评论