子组件:
Vue.component('v-data', {
template: `
<div class="v-data">
<slot :visible-data="visibleData"></slot>
</div>
`,
computed: {
visibleData(){
return [1,2,3];
},
},
});
在父组件中,我是这样使用的:
<v-data>
<li v-for="x in visibleData">{{x}}</li>
</v-data>
但是visibleData
没有在模板中传递。我应该能得到1,2,3。
有没有一种方法可以像这样在组件之间传递变量?
2条答案
按热度按时间9fkzdhlc1#
您正在寻找
Scoped Slots
。这样,就可以很容易地将数据从子组件传递给父组件,从而可以在传递给子组件的模板中引用数据。您可以使用它将子组件中的数据作为在父级中可以称为
这里需要注意的几点
1.可以使用插槽的名称来引用属性。这里我们使用关键字
default
来引用默认插槽。1.我们可以使用
Object Destructuring
直接访问传递给父组件的属性Sanbox present HERE
x759pob22#
你需要的是
Scoped Slots
,这样父节点就可以看到子节点的数据。我可能在这里犯了一些错误,但我建议在这里阅读:官方文件