【发布时间】:2017-12-02 05:00:54
【问题描述】:
我正在尝试创建一个 Vue 组件,该组件将接受一个组件作为参数来显示数据,但我无法弄清楚如何使其工作。如果我全局注册显示组件(使用 Vue.component()),它可以工作,但如果我在本地注册它,我会收到以下错误:
[Vue warn]: Unknown custom element: <my-link> - did you register the component correctly? For recursive components, make sure to provide the "name" option.
谁能告诉我如何通过本地注册来完成这项工作?
主要组件:
<template>
<div>
<my-list :items="items" :renderer="renderer"></my-list>
</div>
</template>
<script>
import MyList from './my-list'
export default {
components: {
'my-list': MyList,
'my-link': {
props: { data: Object },
template: '<span>{{ data.Name }}</span>'
}
},
data() {
return {
items: [
{ id: 1, Name: 'One' },
{ id: 2, Name: 'Two' }
],
renderer: 'my-link'
}
}
}
</script>
我的列表组件:
<template>
<div>
<div v-for="item in items" :key="item.id">
<div :is="renderer" :data="item"></div>
</div>
</div>
</template>
<script>
export default {
props: {
items: Array,
renderer: String
}
}
</script>
【问题讨论】:
-
如果您希望能够在该范围内使用
my-link组件,则需要将import MyLink from './my-link'添加到MyList 组件的脚本顶部 -
@thanksd 没有“./my-link”。另外,我希望能够使用任何组件:MyList 不需要知道它可以使用哪些组件。
-
啊,我误读了 my-list vs my-link
-
为什么不使用插槽?
-
@laurian 你可能想看看这个example 的来源。插槽正是他用于自定义单元格的地方。
标签: vue.js