【问题标题】:Communication with grandchild component与孙子组件的通信
【发布时间】:2018-06-30 00:23:42
【问题描述】:

我命名了三个组件

A.vue > B.vue (A 的子组件) > C.vue (B 的子组件)

A 从核心后端接收直接数据。我想将数据传递给 C。我目前正在使用 Props 来执行此操作,其中 A 将数据发送给 B,B 将数据发送给 C。

它有效,但我很想知道是否有更有效的方式来进行这种交流。

【问题讨论】:

  • 这是一个常见问题:内置 vuejs 事件、事件总线模式或 vuex

标签: vue.js components communication


【解决方案1】:

全局事件总线是处理此问题的常用方法。

// event-bus.js
const bus = new Vue()
export default bus

然后你可以在你的组件中导入event-bus.js并通过以下方式进行通信:

bus.$emit('event', 'payload')
....
bus.$on('event', payload => { ... })

不过,我更喜欢使用状态管理器vuex。存储/模块状态的反应性允许您观察commiting 突变时的变化。 mapGetters, mapMutations, and mapActions 在这里很有帮助。

【讨论】:

    猜你喜欢
    • 2021-09-19
    • 2018-04-18
    • 2017-12-25
    • 2018-02-11
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多