我有一个像这样的文件夹 .
VueTree
components
Classic.vue
Modern.vue
index.js
Classic和Modern是简单的组件,包含 template
, export default {}
和 style
. 我在 index.js
内调用:
import Classic from './components/Classic.vue'
import Modern from './components/Modern.vue'
const VueTree= {
Classic ,
Modern
}
export default VueTree
所以,当我导入这个模块时:
import {Classic , Modern } from '../../modules/VueTree/index.js'
我收到这个错误
未知的自定义元素: - 您是否正确注册了组件?对于递归组件,请确保提供“名称”选项 .
我的组件内部有 name: "Classic"
,我使用 components: { Classic },
包含在当前文件中但是我得到了同样的错误 .
它仅在我只导出一个组件时才有效:
import Classic from './components/Classic.vue'
import Modern from './components/Modern.vue'
export default Classic
这将工作并包括经典,但我无法导出他们两个像在这个例子中看到的https://github.com/greyby/vue-spinner/blob/master/src/index.js
3 回答
您需要将
export
用于命名导出,而不是export default
:见:https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export
你的设置很好 .
问题是你的components . 我可以看到你正在使用Treeview所以,它是recursive component . 您应该特别注意如何创建它们,因为它可以创建无限循环 .
看看我的github,了解一下你的
VueTree
应该如何工作 .Ps:不要忘记在递归组件中添加key和名称 .
如果我说的不起作用 . 随意给我发一个github链接到这个问题,我很乐意提供帮助 .
其他方式
index.js
Modern.vue
NOTICE: Chlidren组件必须仅在index.js中的父组件之前导出 .