当前位置:   article > 正文

1.2 vue3项目问题记录_vue3 appcontext

vue3 appcontext

1、axios全局配置

vue2中使用的是

Vue.prototype.$axios = axios

然后在组件中使用this调用

this.$axios

vue3中没有this,可以有两种方式绑定全局

app.config.globalProperties.$axios = axios

在组件中使用getCurrentInstance()方法获取实例后调用

  1. const internalInstance = getCurrentInstance().appContext.config.globalProperties
  2. internalInstance.$axios

官方不推荐上述方式

注:当使用getCurrentInstance().appContext.config.globalProperties.$axios

getCurrentInstance().appContext.config.globalProperties!.$axios

时,ts编译器会报错,可以加个!符号来处理报错问题。

第二种是使用vue-axios,安装依赖

npm install vue-axios

在main.ts中使用,并注入axios实例

  1. app.use(VueAxios, axios);
  2. app.provide('axios', app.config.globalProperties.axios)

在组件中使用

  1. import {reactive,inject} from 'vue'
  2. const axios:any = inject('axios')

2、vite.config.ts

使用自动导入,需要安装两个包

npm install -D unplugin-vue-components unplugin-auto-import

 添加import参数

  1. AutoImport({
  2. resolvers: [ElementPlusResolver()],
  3. imports:['vue','vue-router']
  4. }),

则会自动在auto-imports.d.ts中导入

在组件中使用时,无需在import就能直接使用了 

  1. <script setup lang="ts">
  2. // import {useRouter} from "vue-router";
  3. // import {reactive,inject} from 'vue'
  4. const router = useRouter();
  5. const input = reactive({
  6. username: "",
  7. password: ""
  8. })
  9. const axios:any = inject('axios')
  10. const login = function () {
  11. axios.post('/login', input).then((res: any) => {
  12. if (res.data.code === 200) {
  13. router.push('/index')
  14. } else {
  15. }
  16. }).catch((err: any) => {
  17. console.log(err)
  18. })
  19. }

3、vite.config.ts跨域设置

  1. server: {
  2. port:3000,
  3. proxy: {
  4. '/api': {
  5. target: 'http://localhost:8443',
  6. changeOrigin: true,
  7. // rewrite: (path) => path.replace(/^\/api/, '')
  8. },
  9. }
  10. },

4、vite.config.ts设置@

  1. resolve: {
  2. // 配置路径别名
  3. alias: {
  4. '@': path.resolve(__dirname, './src'),
  5. },
  6. },

5、vite.config.ts  require方式导入path,报错问题

需要安装@types/node

npm i --save-dev @types/node

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/229185
推荐阅读
相关标签
  

闽ICP备14008679号