Vue 2.0之前我们封装axios和message等通用属性的时候是这么写的:
Vue.prototype.$api = api
Vue.prototype.$http = http
然后在组件内使用this.$http就可以调用了,但是Vue3更新了以后这样写不行了。以下是新的写法
跟之前一样,使用this.$http调用即可
const app=createApp(App);
app.use(store);
app.use(router);
app.use(Antd);
app.mount('#app');
// 配置全局属性
app.config.globalProperties.$message = message;
app.config.globalProperties.$http=http;
app.config.globalProperties.$api=api;
// 在组件中
export default {
mounted() {
console.log(this.$api);
},
// ...
}
在 Vue 3 的 setup() 函数中,this 上下文不再指向 Vue 实例,因此你不能像在 Vue 2 中那样通过 this 来访问全局定义的属性或方法。