Vue.prototype.$axios = axios 在vue3中失效的问题

zhuanbike 2022-3-23 1476

Vue2中使用

vue.prototype.$ajax= axios

这种写法在vue3中报错。那么vue3中应该如何写呢?

在main中引入 VueAxios ,第三方组件估计被作者写了自己的版本。

import  { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import axios from 'axios'
import VueAxios from 'vue-axios'
import xxx from './utils/xxx.js'
createApp(App,{xxx:xxx}).use(store).use(router).use(VueAxios,axios).mount('#app')


在子组件中调用:

<template>
    <div class="sub">
        <h1>This is an subpage</h1>
    </div>
</template>
<script>
    export default {
        name: 'Sub',
        props: {
            xxx:Object //定义prop接收
        },
        mounted()
        {
            this.$props.xxx.post() //可直接调用
        },
        methods:
        {
        }
    }
</script>
<style>
</style>


最新回复 (1)
  • zhuanbike 2022-3-23
    0 2
    如果还想使用$xxx的语法,那么也可以这样写
    const app = createApp(App)
    app.config.globalProperties.$axios = axios // 自定义添加
    app.use(store).use(router).use(ElementUI).use(VueAxios,axios).mount('#app')
发新帖