Vue.js 我如何使用数据&;计算属性而不是事件总线来在组件之间通信?
我在Vue.js 我如何使用数据&;计算属性而不是事件总线来在组件之间通信?,vue.js,Vue.js,我在myComponent中有一个按钮和一个Overlay组件openOverlay在单击按钮时触发openOverlay通过事件总线发出openedverlay <button @click="openOverlay" </button> <Overlay /> methods: { openOverlay() { EventBus.$emit("openedOverlay");
myComponent
中有一个按钮和一个Overlay
组件<代码>openOverlay在单击按钮时触发openOverlay
通过事件总线发出openedverlay
<button
@click="openOverlay"
</button>
<Overlay />
methods: {
openOverlay() {
EventBus.$emit("openedOverlay");
},
},
如何使用数据和计算属性而不是事件总线在组件之间进行通信?组件之间有许多通信方式。 您可以使用vuex并将其放入全局存储标志中以进行覆盖打开。然后,您将能够从vue组件层次结构中的任何位置对其进行控制。 您也可以使用RxJs(哦,我喜欢这个库,但是您应该以一种智能的方式使用它来防止内存泄漏)。在那里,您可以创建一个主题,在覆盖中订阅它,并将其作为道具传递给孩子们。然后这些子项可以生成下一个值。 如果您坚持需要使用数据和计算 这些决策比您将要执行的方法更灵活: 要执行它,您只需将某个标志作为道具传递给覆盖组件,该标志表示打开模式的必要性
<button
@click="openOverlay = true"
</button>
<Overlay v-model="openOverlay"/>
data() {
return {openOverlay: false}
},
很抱歉格式错误。在电话里打字。我还建议你看看。这是一个非常棒的情态动词库
<button
@click="openOverlay = true"
</button>
<Overlay v-model="openOverlay"/>
data() {
return {openOverlay: false}
},
<Modal
v-if="value"
:overlayOpen="value"
/>
<button @click="$emit('change', false)">close overlay</button>
data() {
props: [
value // here your v-model :)
];
},