如题,可以这样组织吗?rootReducer用combineReducer方法combine reducer1和reducer2,然后reducer1又是用combineReducer方法combine reducer3和reducer4......可以这样不断用combineReducer层层嵌的吗?还是说只能有一个combineReducer方法的?另外是不是所有的状态管理都由redux来做?还是说有些其实是可以由组件内的state来做的?应该怎么安排取舍?
总之想要了解的是如何在react中用redux组织状态树?有没有最佳实践?状态树应该如何嵌套和平行?如果有这方面的文章也可以推荐一下。
其实状态树应该是扁平的,还是说应该是嵌套的啊,菜鸟一个,刚学redux,对这些很疑惑
combineReducer
方法是在创建store前用的方法,目的是合并多个不同的reducer,接著经过createStore(reducer)
创建store后,store中的数据结构就会确立了。你可以把reducer视为如何更动store中数据所用的方法,这个过程只是个初始化store的两个步骤,层层嵌没有太大意义,按理说一个应用中只会用一个combineReducer,因为也只会用单一个store控管整体应用。所有状态管理由Redux作,组件内的state可以不用。不用安排,就这样作就可以了,你对于state可能不太理解,state的行为是可能异步的,它在某些情况下得到的结果不如你所想像,它能控管的状态也是有限制的。参考我写的文章:
为何说setState方法是异步的?
Redux状态树看需求,每种应用都不一样,实际上就是把之前应用中各组件的会用到的state,统统放到里面区分不同的组件使用这样。你会用React的state自然就会组织Redux的状态树,嵌套、深层或复杂的结构可以加用immutable.js可以方便处理与提升性能,这属高级部份了。官网资讯很多不妨先看看,应该也有中译本。