每当界面中弹窗一多,交互略复杂的时候,自己的代码就会处理的非常的乱。这次做的一个自用后台项目,因为一开始时要求不高,没有做好数据的规划,导致最后项目非常的难易维护。
过多的 elDialg 直接暴露,处理的逻辑都在一个界面中,data 中是数据量过于庞大,很难维护应该直接将弹窗处理成一个组件,数据也应该统一在组件中或者组件外处理完成,界面的数据结构也会清晰很多。当弹窗与弹窗之间的交互很多的时候,就不再用各自弹窗之间相互引用,而是统一用一个 vuex 去集中控制这些弹窗的数据交互。在项目中,已经将 store 分割成模块 module, 而这些弹窗的 visible 都是通过 Vuex 来控制,所以统一放在了一个 dialogControl 对象中在 mutations 中写入一个可配置的方法,控制 dialogControl 对象于是,无论弹窗与弹窗之间如何复杂,只要控制入口就好。
但是当组件与界面之间有个别交互的时候,可以考虑用 bus 来触发界面上的数据更新。