【发布时间】:2018-12-14 16:33:51
【问题描述】:
我已经将这个问题埋藏在我的精神通讯录中已经有一段时间了。我正在运行一个非常复杂的 Vue 应用程序,它处理大量必须通信的组件,因此我使用了一个非常结构化的 Vuex 设置,利用它的 module 系统。但是,对于一组特定的组件,比如说 comments 文件夹,即:
评论目录:
- Comments.vue // 整体 cmets 组件
- Comment.vue // 每个评论的组件
- NewComment.vue // 创建新 cmets 的组件
- bus.js // 仅为这三个组件保留事件总线
使用保留在此目录中的 Event Bus 仅用于这 3 个组件相互通信是否可以,还是因为我已经有一个大型 vuex 系统正在运行而被视为“不当行为”?
【问题讨论】:
-
vuejs.org/v2/style-guide/… 。但是,如果您知道自己在做什么,那完全取决于您
-
我只是觉得 Vuex 应该用于应用程序范围的通信,而不是用于 2-3 个相邻组件之间的通信......但是我对这个实现非常满意,感谢链接! @JacobGoh
-
@MikeStrong 即使您在应用程序中使用 Vuex,也可以使用事件总线。但是,你知道,由于 vuex 是为所有可用组件之间的通信而设计的,所以我看不到事件总线的使用是相关的。但这取决于你,顺便说一句!
-
我的意思是,Vuex 是全球性的。假设我有 20 个 cmets 组件->每个有 10 个评论组件...为什么/如何使用 vuex 来允许每个唯一的子级->父级相互通信?每个父->子对的所有突变都会相互重叠,因为状态由所有组件共享...@Sanjay
-
为什么你觉得首先需要使用事件总线,而不是普通的 Vue 事件,尤其是如果这些组件具有直接的父子关系,正如你刚才解释的那样?只需使用正常事件。
标签: javascript vue.js state vuex event-bus