相关疑难解决方法(0)

在 Vue.js 3 setup() 中访问 this.$root

在 Vue 2 中,您可以访问钩子this.$root内部created。在 Vue 3 中,原本应该进入createdhook 的所有东西现在都进入了setup().

setup()我们没有访问权限的情况下this,我们如何访问根实例上的任何内容?

比如说,我在根实例上设置了一个属性:

const app = createApp(App).mount('#app');

app.$appName = 'Vue3';
Run Code Online (Sandbox Code Playgroud)

我可以thismounted()with访问this.$root.$appName,我怎样才能做到这一点setup()


更新

如果我可以访问import它:

import app from '@/main';
...
setup() {
    console.log(app.$appName) // Vue3
Run Code Online (Sandbox Code Playgroud)

但是,如果我必须为每个文件都这样做,这很麻烦。


更新 2

另一种解决方法是在provide()内部使用App.vue,然后inject()在任何其他组件中使用:

setup() {
    provide('$appName', 'Vue3')
Run Code Online (Sandbox Code Playgroud)
setup() {
    inject('$appName') // Vue3
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vue-component vuejs3 vue-composition-api

9
推荐指数
3
解决办法
1万
查看次数