一般项目里面,做个状态就可以了,如果需要初始状态的话,设置一下就好。
如果使用indexedDB的话,简单封装一下即可。
而我这个项目有点特殊,需要从加载 json文件 然后 存入 indexedDB,再存入状态,然后还需要从webSQL加载数据,然后存入indexedDB和state。
这些要在初始化里面完成,这就需要设置好先后顺序和调用方法。
一开始模仿 vuex 的方式,做插件,设置初始状态,简单的情况还可以,但是涉及到多方关联,就有点乱了。
一开始倒是也实现了,但是扩展的时候就懵了,因为自己都看不懂前几天写的代码了。
那么重构吧。
放弃插件的方式
既然不需要使用 provide / inject 了,那么也就没有必要使用插件的形式,那么只需要在 main.js 里面加载相关的代码,然后关联起来即可。这样灵活度更好,也更好控制先后顺序。
controller 设置一个“调度”居中调节
把每个功能点都单独拿出来做成函数,然后在 controller 里面统一调度,这样就不容易乱了。
单一职责
这是一个老生常谈的问题,简单的时候可以把数据库的设置和初始数据的设置做在一起,但是复杂的时候,就需要分离出来了。
数据库的部分,只负责建立相关的表(对象仓库),设置好了之后通知调度即可,这样代码就不会混在一起,也不会越扩展代码越多了。
而且多个库的时候,也方便确定先后顺序。
网友评论