我在我的Nuxt.js项目中使用plotly.js,当导入plotly.js时,我不断收到一个错误,说是document not defined。Nuxt.js文档没有提供明确的说明,说明如何仅在客户端加载和生成组件。
发布于 2021-01-06 04:47:26
要解决此问题,您正在使用的组件必须放在client-only环境中:
<client-only>
<component ...></component>
</client-only>此外,您需要将组件的.vue文件存储在Nuxt.js自动创建的components目录之外的其他位置,因为在构建过程中,Nuxt.js会自动收集所有这些文件,以便将它们捆绑在一起,这将在组件内部调用plotly.js的import。我创建了一个名为components-lazy的目录,并将组件放在那里。
最后,您必须在页面、布局或父组件中延迟导入组件,您打算在其中使用它。对于此任务,我使用了以下语法:
export default {
...
components: {
Plotly: () => import('@/components-lazy/Plotly'),
...
}
...
}这将确保此特定组件仅在客户端导入和呈现。
https://stackoverflow.com/questions/65586338
复制相似问题