Vue.js 全局 Axios 调用
Vue.js Global Axios Calls
我正在编写一个项目,该项目使用来自不同页面的大量 Axios 调用。不是多次使用axios调用,是否可以写一个单独的axios调用函数,在每个页面中使用。
例如,定义一个 "axiosCall" 函数一次,然后通过调用该函数在不同的页面中使用它。
axiosCall (serviceName, parameter) {
axios
.get(`http://localhost/xApi/` + serviceName + `/` + parameter)
.then(response => {
return response.data
})
.catch(e => {
this.exceptionHandler('Error at get ' + serviceName + ' : ', e)
})
}
然后像这样使用它
var userData = axiosCall('user',1)
var roleData = axiosCall('role',2)
提前致谢
也许不是最好的解决方案,但它可以工作
axios-conf.js
window.axios = require('axios');
window.axios.defaults.headers.common = {
'CUSTOM_HEADER': 'SOME TEXT',
'X-Requested-With': 'XMLHttpRequest'
};
window.axios.axiosCall = function(serviceName, parameter) {
axios.get(`http://localhost/xApi/` + serviceName + `/` + parameter)
.then(response => {
return response.data
})
.catch(e => {
this.exceptionHandler('Error at get ' + serviceName + ' : ', e)
})
}
有几种方法可以做到这一点:
在您的 bootstrap 文件中,即 main.js
您可以在初始化 Vue 之前执行 Vue.prototype.$axiosCall = function () { ... }
然后在您的组件中您可以调用 this.$axiosCall('user', 1)
.
另一种方法是使用 mixin (axiosMixin.js):
export default {
methods: {
axiosCall () { ... }
}
}
然后将其作为全局混合包含在您的 bootstrap 文件中,例如:Vue.mixin(UserMixin)
(同样,在初始化完成之前在您的 bootstrap 文件中)。
我正在编写一个项目,该项目使用来自不同页面的大量 Axios 调用。不是多次使用axios调用,是否可以写一个单独的axios调用函数,在每个页面中使用。
例如,定义一个 "axiosCall" 函数一次,然后通过调用该函数在不同的页面中使用它。
axiosCall (serviceName, parameter) {
axios
.get(`http://localhost/xApi/` + serviceName + `/` + parameter)
.then(response => {
return response.data
})
.catch(e => {
this.exceptionHandler('Error at get ' + serviceName + ' : ', e)
})
}
然后像这样使用它
var userData = axiosCall('user',1)
var roleData = axiosCall('role',2)
提前致谢
也许不是最好的解决方案,但它可以工作
axios-conf.js
window.axios = require('axios');
window.axios.defaults.headers.common = {
'CUSTOM_HEADER': 'SOME TEXT',
'X-Requested-With': 'XMLHttpRequest'
};
window.axios.axiosCall = function(serviceName, parameter) {
axios.get(`http://localhost/xApi/` + serviceName + `/` + parameter)
.then(response => {
return response.data
})
.catch(e => {
this.exceptionHandler('Error at get ' + serviceName + ' : ', e)
})
}
有几种方法可以做到这一点:
在您的 bootstrap 文件中,即 main.js
您可以在初始化 Vue 之前执行 Vue.prototype.$axiosCall = function () { ... }
然后在您的组件中您可以调用 this.$axiosCall('user', 1)
.
另一种方法是使用 mixin (axiosMixin.js):
export default {
methods: {
axiosCall () { ... }
}
}
然后将其作为全局混合包含在您的 bootstrap 文件中,例如:Vue.mixin(UserMixin)
(同样,在初始化完成之前在您的 bootstrap 文件中)。