我有一个动态视图:
<div id="myview">
<div :is="currentComponent"></div>
</div>
带有关联的 Vue 实例:
new Vue ({
data: function () {
return {
currentComponent: 'myComponent',
}
},
}).$mount('#myview');
这允许我动态更改我的组件。
就我而言,我有三个不同的组件: myComponent
、 myComponent1
和 myComponent2
。我像这样在它们之间切换:
Vue.component('myComponent', {
template: "<button @click=\"$parent.currentComponent = 'myComponent1'\"></button>"
}
现在,我想将道具传递给 myComponent1
。
当我将组件类型更改为 myComponent1
时,如何传递这些道具?
原文由 Epitouille 发布,翻译遵循 CC BY-SA 4.0 许可协议
要动态传递道具,您可以将
v-bind
指令添加到动态组件并传递包含道具名称和值的对象:所以你的动态组件看起来像这样:
在您的 Vue 实例中,
currentProperties
可以根据当前组件进行更改:所以现在,当
currentComponent
是myComponent
时,它将有一个foo
属性等于'bar'
。如果不是,则不会传递任何属性。