我可以创建如下所示的父级子组件:
子组件
Vue.component('my-child', {
template: '<div>{{value}}</div>',
props: {
value: {
type: String,
default: ""
}
}
});父组件
注意如何在父模板中引用my-子组件。
Vue.component('my-parent', {
template: '<div><span>Hello</span><my-child :value="value"></my-child></div>',
data: function () {
return {
value: ""
}
},
});然后我就可以这样用了:
<my-parent :value="ABC"></my-parent>"ABC“值将正确传递给子节点并按预期显示。
但是,我需要做的是如下所示(基本上,我已经从父模板中提取了我的子模板,并返回到HTML中。我将有许多不同的子类组件,这些组件可以在我的父级内部使用):
<my-parent :value="ABC">
<my-child></my-child>
</my-parent>我将父组件更改为使用如下所示的插槽:
Vue.component('my-parent', {
template: '<div><span>Hello</span><slot :value="value"></slot></div>',
data: function () {
return {
value: ""
}
},
});my-子模板将被拾取并显示,但是ABC值并没有像我所期望的那样传递到my-子组件。
如果我这么做:
<my-parent :value="ABC">
<my-child :value="value"></my-child>
</my-parent>my-子绑定实际上是在根实例上查找'value‘,而不是从我的父实例中查找’value‘,这不是我想要的。
我如何通过插槽传递数据?
发布于 2017-10-03 11:20:26
https://stackoverflow.com/questions/46542798
复制相似问题