关于 axios 在 Vue3 全局使用

来源:7-5 后端Icode终极使用方案

EastSummer

2023-04-07

老师,您好:
axios 在 Vue3 全局配置 问题中看到了使用getCurrentInstance的解决方案;
然后我在其他地方看到了另一种解决方案(依赖注入):

// 入口文件中
import axios from 'axios'
const app = createApp(App)
app.provide('$axios', axios)
// 组件内使用axios(compositionAPI)
<script setup lang="ts">
  import { inject } from 'vue'
  const $axios = inject('$axios')
  $axios.get('xxxx').then((res) => {    
    // ...
  }).catch((err) => {
    // ...
  })
</script>

想请教下,您对这两种方案的看法(比如:有否有优劣之分)

写回答

1回答

张轩

2023-04-08

同学你好

我个人更喜欢第一种方案,虽然麻烦点,但是更符合这个场景。

Provide 针对的是一些全局使用的变量(比如语言,用户信息等等,直接把一个第三方库放进去好像有点不符合)。

当然这只是我个人的偏好,两种方式应该都可以实现对应的效果,选择哪个就看同学的爱好啦。

0
1
EastSummer
非常感谢!
2023-04-12
共1条回复

Vue3 + TS 仿知乎专栏企业级项目

带你完成前后端分离复杂项目,率先掌握 vue3 造轮子技能

3142 学习 · 2313 问题

查看课程