在Vue 2中,您可以访问created
挂钩内的this.$root
.在Vue 3中,created
钩子中的所有内容现在都进入setup()
.
在setup()
中,我们无法访问this
,那么,我们如何访问根实例上的任何内容呢?
比如,我在根实例上设置了一个属性:
const app = createApp(App).mount('#app');
app.$appName = 'Vue3';
我可以从mounted()
和this.$root.$appName
中访问this
,如何在setup()
中访问?
UPDATE
我可以访问它,如果我使用它:
import app from '@/main';
...
setup() {
console.log(app.$appName) // Vue3
但是,如果我必须对每个文件都这样做,这是一个麻烦.
UPDATE 2
另一个解决方法是在App.vue
中使用provide()
,然后在任何其他组件中使用inject()
:
setup() {
provide('$appName', 'Vue3')
setup() {
inject('$appName') // Vue3