背景
我在做一个页面效果,就是在首页上点击导航,或者其他的按钮需要在主显示区域创建一个tab,同时也要与面包屑的效果。开始我没有开通菜单的router效果,仅仅是利用菜单组价的点击事件做出了想要的效果,使用的是事件总线传参,因为事件总线可以在任何组件间传递参数,事件总线的使用可以参考我的《手把手学习Vue3.0:Vue3.0正确使用Bus总线mitt实现组件间通信和传参》。事件总线的特点是在事件发起的地方挂载事件,在需要跟随变化的接收方监听事件。之所以选择vuex是因为我发现时间总线方式在实现复杂场景的时候有弊端,下面跟我一起看看怎么使用vuex。
放弃总线的原因
还以我的页面效果举例子:
- 由于菜单组件开通了路由功能,所以每次点击操作有路由的更新
- tab组件和面包屑组件依赖菜单的变化,同时面包屑和tab组件还需要其他的属性才能实现效果
- 档切换tab的时候菜单和面包屑都要做相应的变化,这个时候就会多写事件,代码已经开始不美观,非结构性的代码开始出现了,不利于维护,场景越复杂就越乱。
- 而事件本身就是一个