vue中引入axios,axios的配置应该写在哪个页面中?

发布于 2022-09-11 19:19:07 字数 576 浏览 17 评论 0

const instance = axios.create();
instance.defaults.timeout = 2500;
instance.get('/longRequest', {
  timeout: 5000
});

如果写在main.js中怎样保证全局可用?
main.js中文件

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

枫以 2022-09-18 19:19:08

可以直接把create好的instance export出来

终难愈 2022-09-18 19:19:08

在页面单独写一个axios请求拦截器,里面可以做全局参数过滤,参数加密解密等各种操作,export出去,
把所有的api按功能或者页面放在一个单独的api文件夹下,在里面引入axios,然后页面之间调这个api文件夹下面的api,比如

import request from '@/common/js/request'

// 编辑
export function updateApi (data) {
  return request({
    url: '/api/area/update',
    method: 'put',
    data
  })
}
苄①跕圉湢 2022-09-18 19:19:08

想正规一些的话就开发一个axios的插件

const axiosPlugin = {
    createHttp() {
        const $http = axios.create();
        $http.defaults.timeout = 2500;
        
        // 省略部分代码...
        
        return $http;
    }
    install(Vue) {
        Vue.prototype.$http = this.createHttp();
    }
};

export default axiosPlugin;

接着在main.js中安装插件

import Vue from "vue";
import axiosPlugin from "axiosPlugin";

Vue.use(axiosPlugin);

在组件中使用

this.$http.get('/longRequest', {
  timeout: 5000
});
我早已燃尽 2022-09-18 19:19:07

向Vue的原型链注入axios或其实例,这样每个vue的实例都可以访问

main.js中:

Vue.prototype.$http = axios

vue组件中调用

this.$http.get('/api', {})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文