Vue.js instance.vue中未定义插件
我很难在Nuxt.js中添加插件。我一直在寻找文档和所有类似的问题,但我得到了相同的错误:Vue.js instance.vue中未定义插件,vue.js,plugins,nuxt.js,Vue.js,Plugins,Nuxt.js,我很难在Nuxt.js中添加插件。我一直在寻找文档和所有类似的问题,但我得到了相同的错误:simpleParallax未定义 我在所有文件上尝试了不同的方法 numxt.config.js: 插件:[ {src:'~/plugins/simple parallax.js',模式:'client',ssr:false} ], plugins/simple parallax.js: 从“Vue”导入Vue; 从“简单视差js”导入SimpleParalax; Vue.use(新的SimplePar
simpleParallax未定义
我在所有文件上尝试了不同的方法
numxt.config.js
:
插件:[
{src:'~/plugins/simple parallax.js',模式:'client',ssr:false}
],
plugins/simple parallax.js
:
从“Vue”导入Vue;
从“简单视差js”导入SimpleParalax;
Vue.use(新的SimpleParalax);
index.vue
:
导出默认值{
插件:['@/plugins/simple parallax.js'],
安装的(){
var image=document.getElementsByClassName('hero');
新的SimpleParalax(图像{
比例:1.8
});
}
}
错误消息:
ReferenceError:未定义SimpleParlax
实际上你不需要在这里使用插件。 只需
从组件中的“simple parallax js”
导入simpleParallax,并在挂载的钩子中使用图像初始化它
index.vue
:
从“简单视差js”导入SimpleParalax
导出默认值{
...
安装的(){
//确保此操作仅在客户端运行
if(process.client){
var image=document.getElementsByClassName('缩略图')
新的SimpleParalax(图像)
}
},
...
}
不要忘了删除以前创建的插件,它在这里是多余的。到目前为止,我找到的最好的解决方案是在Vueprototype
上注册simpleParallax
,就像这样,在名为simple parallax.client.js
的插件nuxt文件中注册:
从“Vue”导入Vue;
从“简单视差js”导入SimpleParalax;
Vue.prototype.$simpleParallax=simpleParallax;
还有我的numxt.config.js
文件,如果有人想验证:
插件:[
{src:'~/plugins/simple parallax.client.js',模式:'client',ssr:false}
],
然后,在实例化之前,我可以在主组件或根组件的mounted
生命周期中访问插件,以获取所需的HTML元素,并使用新添加的全局方法this.$simpleParallax
例如,我可以初始化某个HTML元素,使其视差如下所示:
const someHTMLElement=document.querySelectorAll('.myhtml元素');
const options={…}//所需的视差选项
新增此项。$SimpleParalAX(某些HtmlElement,选项);
谢谢,但当我这样做时,我会得到“窗口不是从插件本身定义的”…://@KelligJourdren,哦,当然,我忘记了SSR。我已经更新了答案:)@KelligJourdren那么你是如何解决这个问题的,你是将它注册为插件还是做了其他事情?