redux 能按需加载 actions reducer ?

如题,假设有ABC业务,希望能按需加载。

但是redux 的action 和 reducer 在一开始都是定义好的了。 所以按需加载的只能是某业务的部分代码,不包含 某业务的 action 和 reducer。

那么,大神,有方案么?


自己搞了个方案
https://github.com/liyatang/redux-async-actions-reducers

阅读 5.2k
2 个回答

要确定redux架构时候,可以先思考一下,redux实质上做了什么。
事实上,redux一直都被宣称为一个状态管理器。使用react作为前端组件化工程类库,每一个组件必然有自己的状态以及需要传递到子孙组件的状态。redux准确来说,是管理“共享状态”,这些状态都是可以被自己以及子孙组件,通过action进行调用修改的。

回到楼主的问题,既然明白了redux的实质用处,就可以开始架构了。
在很多boilerplate或者示例里面,redux一直被作为顶级的状态管理器。对于大型前端项目,这样不仅导致reducers非常庞大,而且在多模块加载情况下导致非常多冗余代码,而且constant会非常容易重复(关于constant管理,可以参考前阵子写的一篇文章)。

最后结论是,模块化开发,可以将每一个模块作为一个Web组件。独立使用Redux进行管理,这样既有利于代码分离,前端工程,又不会让redux代码量复杂冗余、难以管理。

宣传栏