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 :)
     ];
   },