Vue:将道具传递给已经嵌入的组件?
Vue: Passing a prop to an already embedded component?
基本上,我有一个 'Display' 组件,它有两个嵌入式组件,'Menu' 和 'Feed'。我希望我的提要根据在菜单中单击的任何按钮进行更新。我能够发出从我的菜单组件中单击的按钮,但是我如何将它传递给已经嵌入到我的模板标签中的提要组件?
显示组件模板部分看起来像这样
<template>
<div>
<Menu k-bind:options="options"/>
<Feed/>
</div>
</template
选项实际上只是传递给菜单,只是让它生成不同的所需按钮。
我唯一能想到的就是在 Menu 标记中包含 v-on:option-clicked = "updateFeed"
,以便在单击按钮后调用 updateFeed 方法。我不确定如何在这个方法中实际更新提要,这基本上就是我想要弄清楚的。
我不确定这是否是实现它的最佳方式,但我们将不胜感激!
让您的 Display
组件保持所选菜单选项的状态。通过道具将其绑定到您的 Feed
并监听 Menu
上的更新事件。 Feed
然后可以 watch 更改道具。
显示
<Menu :options="options" @option-clicked="option = $event"/>
<Feed :option="option" />
data: () => ({
options: [/* whatever */],
option: null // holds the selected menu option
})
菜单(猜)
<button
v-for="option in options"
@click="$emit('option-clicked', option.value)"
>{{ option.label }}</button>
供稿
props: ['option'],
methods: {
updateFeed (selectedOption) {
// whatever
}
},
watch: {
option (selectedOption) {
this.updateFeed(selectedOption)
}
}
基本上,我有一个 'Display' 组件,它有两个嵌入式组件,'Menu' 和 'Feed'。我希望我的提要根据在菜单中单击的任何按钮进行更新。我能够发出从我的菜单组件中单击的按钮,但是我如何将它传递给已经嵌入到我的模板标签中的提要组件?
显示组件模板部分看起来像这样
<template>
<div>
<Menu k-bind:options="options"/>
<Feed/>
</div>
</template
选项实际上只是传递给菜单,只是让它生成不同的所需按钮。
我唯一能想到的就是在 Menu 标记中包含 v-on:option-clicked = "updateFeed"
,以便在单击按钮后调用 updateFeed 方法。我不确定如何在这个方法中实际更新提要,这基本上就是我想要弄清楚的。
我不确定这是否是实现它的最佳方式,但我们将不胜感激!
让您的 Display
组件保持所选菜单选项的状态。通过道具将其绑定到您的 Feed
并监听 Menu
上的更新事件。 Feed
然后可以 watch 更改道具。
显示
<Menu :options="options" @option-clicked="option = $event"/>
<Feed :option="option" />
data: () => ({
options: [/* whatever */],
option: null // holds the selected menu option
})
菜单(猜)
<button
v-for="option in options"
@click="$emit('option-clicked', option.value)"
>{{ option.label }}</button>
供稿
props: ['option'],
methods: {
updateFeed (selectedOption) {
// whatever
}
},
watch: {
option (selectedOption) {
this.updateFeed(selectedOption)
}
}