Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Vue3 Composition API上使用Vue2插件?_Javascript_Vue.js_Vuejs3_Vue Composition Api - Fatal编程技术网

Javascript 如何在Vue3 Composition API上使用Vue2插件?

Javascript 如何在Vue3 Composition API上使用Vue2插件?,javascript,vue.js,vuejs3,vue-composition-api,Javascript,Vue.js,Vuejs3,Vue Composition Api,我正在迁移我的Vue2应用程序以使用@vue/composition api(vue版本仍然是2而不是3) 在Vue2中,我使用像this.$session这样的插件,但是this在Vue3上不起作用。我找到的解决方案是这样使用: setup (props, context) { context.root.$session // works fine context.root.$anotherPlugin } 但是在Vue3上下文中,root已弃用,因此当我迁移到Vue3时,它将不再

我正在迁移我的Vue2应用程序以使用
@vue/composition api
(vue版本仍然是2而不是3)

在Vue2中,我使用像
this.$session
这样的插件,但是
this
在Vue3上不起作用。我找到的解决方案是这样使用:

setup (props, context) {
  context.root.$session // works fine
  context.root.$anotherPlugin 
}
但是在Vue3
上下文中,root
已弃用,因此当我迁移到Vue3时,它将不再工作

setup()
中是否有其他方法可以访问Vue实例?我想如果我可以访问它,我可以在Vue3上正常使用这些插件。

使用
提供
注入

提供

const-app=createApp(app);
app.provide('someVarName',someVar);//提供给此处的所有组件
注入

const { inject } = Vue;
...
setup() {
  const someVar = inject('someVarName');   // injecting in a component that wants it
}
我这样做的方式是使用vue 2 composition api中也存在的

您可以这样使用它:

const instance = getCurrentInstance()
const session = instance.proxy.$session
const i18n = instance.proxy.$i18n

一种方法是从“Vue”导入Vue,只需使用Vue.session(不带美元符号)。