事件总线4?
来源:16-7 Vue事件总线使用案例

慕神4535282
2020-11-05
老师,请教一个问题,原贴到此,
https://coding.imooc.com/learn/questiondetail/210534.html
这个就看个人理解了,我指的是本来两个控件在代码层面上没什么关联,所以用事件总线。
我明白你说的播放器和登录组件在代码层面上没什么关联,但是我不能理解为什么是拿播放器和登录组件来做比较,而不是拿detail.vue和登录组件来做比较,
这样说吧,如果说
detail.vue和登录组件在代码层面上没什么关联,所以用事件总线,因此在detail.vue中新增这一行代码
_this.$event.$emit("openLoginModal", "111");
这个逻辑我能够理解,
但是,如果说,
modal-player.vue和登录组件在代码层面上没什么关联,所以用事件总线,因此在detail.vue中新增这一行代码
_this.$event.$emit("openLoginModal", "111");
这个逻辑我就不能够理解,
因为点击播放小节视频时,判断用户是否需要登录,是否要直接弹出登录窗口,都是detail.vue中要做的事情,整个处理过程跟modal-player.vue没有半点关系,为什么用不用事件总线会牵扯到modal-player.vue呢?
同时,我看到git上新增事件总线的提交,也是只修改到了login.vue, main.js, detail.vue, 代码层面也没涉及到 modal-player.vue.
退一万步来说,如果 deatil.vue中的 modal-player 没做成组件,而是直接在detail.vue中使用的话,这个时候你也是推荐使用事件总线吧,这个时候使用事件总线的根据是什么呢? 这时是看登录组件login.vue跟哪个 xxx.vue在代码层面没什么关联呢?这些我都想不通。
麻烦老师一一回答,谢谢老师解答!!!
,
,
1回答
-
对的,跟播放组件没关系。
应该说detail.vue和login.vue没有代码层面关联,它们没有父子组件关系,所以用事件总线来触发登录。
012020-11-06