vue3,怎么在vue组件里获取main.js里的const app=createApp(App)中的app?

vue2支持Import Vue from 'vue',进而在子组件内通过Vue实现动态配置vue全局内容。那vue3要进行这种操作要怎么做?

在main.js,通过const app=createApp(App)的app可以动态配置vue的全局内容,那在子组件中,怎么获取这个app呢?

比如我要在子组件调用app.component方法动态注册组件,要怎么弄?

阅读 6.6k
3 个回答

挂全局访问

window.app = createApp(App)

你是不是要调全局变量或方法?
vue3全局变量或方法:

// (Vue 3.x)
const app = createApp({})
app.config.globalProperties.$xxx = () => {}

调用:

import { getCurrentInstance, ComponentInternalInstance } from 'vue';
const { appContext } = <ComponentInternalInstance>getCurrentInstance()
console.log(appContext.config.globalProperties.$xxx);

在模板中直接就可以用{{$xxx}}

不知道你要干嘛,全局访问有很多办法,我一般比较喜欢用一个独立的 JS 来做。

不过不建议把数据、对象挂在 app 上面,尽量不要在自己的组件里修改它比较好。

推荐问题