当 vue3 全局挂载 axios 遇到 Cannot read property ‘get‘ of undefined

第一步:先安装axios
yarn add axios / npm install axios

##main.js
import {
	createApp
} from 'vue'
import App from './App.vue'
import router from './router'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import print from 'vue3-print-nb'
import axios from 'axios'
const app = createApp(App)
app.config.globalProperties.$http = axios;
app.use(ElementPlus)
app.use(router)
app.use(print)
app.mount('#app')

vue3的挂载方式:app.config.globalProperties.$http = axios;
第一次不会用,所以百度了一下,是这样写的:
在这里插入图片描述
在这里插入图片描述
结果:在这里插入图片描述

打印一下解构出来的ctx
const {ctx}=getCurrentInstance()
console.log(ctx);

在这里插入图片描述

好家伙,打印出来的数据里面没有我自定义的$http

再来打印一下getCurrentInstance()
在这里插入图片描述

		`$http藏得挺深啊!!`

在这里插入图片描述

const {
	appContext: {
		config: {
			globalProperties: {
				$http
			}
		}
	}
} = getCurrentInstance();

在这里插入图片描述
成功了!第一次用vue3就踩到了坑。记录一下。


版权声明:本文为weixin_44987713原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。