axios如何自定义实例且全局使用?

发布于 2022-09-12 00:49:55 字数 553 浏览 13 评论 0

main.js:

import Vue from 'vue'
import router from './router/router.js'
import store from './store/store.js'
import axios from 'axios'
import VueAxios from 'vue-axios'
import App from './App.vue'
import Qs from 'qs'
Vue.prototype.$qs = Qs

let backStage = axios.create({
  baseURL: 'xxx',
  headers: {
    'X-Requested-With': 'XMLHttpRequest',
    'Content-Type':'application/x-www-form-urlencoded',
  }
})

Vue.use(VueAxios,axios);

如上创建了axios的自定义实例,那么我要怎么全局使用这个自定义的实例?
是挂载在vue或者axios的原型上还是有别的更好的方法

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

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

发布评论

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

评论(3

策马西风 2022-09-19 00:49:55

1.直接挂载到原型上
Vue.prototype.$http=axios
这种方式小型项目使用为佳。
2.写个模块组件 request.js 进行封装

import axios from 'axios';

exports.install = function (Vue, options) {
   Vue.prototype.$http = function (){
         //这里用于自定义封装axios
         //可同时通过this来调用已经加载的其他比如UI框架服务方式的组件
    };
};

然后在 main.js 引入使用

import request from './request' //引入

Vue.use(request) //将全局函数当做插件来进行注册

1、2两种方式都是挂在原型上,组件里直接 this.$http() 来使用,两者适用范围差不多。
3.不挂载到原型,直接抽离出api层并对请求进行封装,每个组件独单引用,这个适用于长期维护/中大型项目

一杆小烟枪 2022-09-19 00:49:55

建议新增api.js 创建实例之后export 需要使用时 import即可

迎风吟唱 2022-09-19 00:49:55

单独放一个文件

export const $api=api;
export default Vue => {
Vue.prototype.$api=api

main里面

Vue.use(require("路径/api").default)

其他js里面

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