javascript Vue 3 'this'从未定义[已关闭]

iqjalb3h  于 2023-02-11  发布在  Java
关注(0)|答案(1)|浏览(171)

20小时前关门了。
Improve this question
正如标题所述,无论我在哪里使用this,它都不会指向Vue示例,并且总是返回undefined,这使我无法以编程方式访问类似于. $router的内容,也无法将变量分配给app.config.globalProperties,以便在main.js之外使用。

    • 这是我的主. js**
import App from './App.vue'
import { createApp } from 'vue'
import { registerPlugins } from '@/plugins'

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

正如您所看到的,我的所有插件都使用app.use()注册在一个单独的文件中,是否遗漏了什么会导致Vue示例在main.js之外不可访问?

oaxa6hgo

oaxa6hgo1#

我会回答这个问题。按照组合API的设计原则(我相信你正在使用),这不应该存在了,而不是。例如,如果你想使用routerroutevue-router用途:

import { useRoute, useRouter } from 'vue'

const route = useRoute()
const router = useRouter()

另外,如果插件只有代码注入,但不提供复合API(必须与vue 3兼容,虽然我相信没有插件与vue兼容,但只提供注入器),您可以使用app.config .globalProperties.<name>或使用vue 3的provide(<key>)

相关问题