如题,假设有ABC业务,希望能按需加载。
但是redux 的action 和 reducer 在一开始都是定义好的了。 所以按需加载的只能是某业务的部分代码,不包含 某业务的 action 和 reducer。
那么,大神,有方案么?
自己搞了个方案
https://github.com/liyatang/redux-async-actions-reducers
如题,假设有ABC业务,希望能按需加载。
但是redux 的action 和 reducer 在一开始都是定义好的了。 所以按需加载的只能是某业务的部分代码,不包含 某业务的 action 和 reducer。
那么,大神,有方案么?
自己搞了个方案
https://github.com/liyatang/redux-async-actions-reducers
要确定redux架构时候,可以先思考一下,redux实质上做了什么。
事实上,redux一直都被宣称为一个状态管理器。使用react作为前端组件化工程类库,每一个组件必然有自己的状态以及需要传递到子孙组件的状态。redux准确来说,是管理“共享状态”,这些状态都是可以被自己以及子孙组件,通过action进行调用修改的。
回到楼主的问题,既然明白了redux的实质用处,就可以开始架构了。
在很多boilerplate或者示例里面,redux一直被作为顶级的状态管理器。对于大型前端项目,这样不仅导致reducers非常庞大,而且在多模块加载情况下导致非常多冗余代码,而且constant会非常容易重复(关于constant管理,可以参考前阵子写的一篇文章)。
最后结论是,模块化开发,可以将每一个模块作为一个Web组件。独立使用Redux进行管理,这样既有利于代码分离,前端工程,又不会让redux代码量复杂冗余、难以管理。
2 回答1.4k 阅读✓ 已解决
2 回答1k 阅读
1 回答1k 阅读
@Jogis 目前我已经把reducers 拆分了,可以做到按需加载。几乎没有代价。 actions的按需加载在摸索中。 至于 constant 按需加载很容易。
https://github.com/liyatang/redux-async-actions-reducers