
上一节对
createAction进行了分析,其每次只能创建一个action,如果想要一次创建多个action,这就需要应用createActions这一Api,下面对createActions的源码来分析一下
createActions
createActions的源码会复杂很多,一步一步来分析,不要着急
1 | /* |
在分析actionCreatorsFromIdentityActions之前先分析一下arrayToObject这个方法,因为它会在很多地方用到
1 | /* |
actionCreatorsFromIdentityActions方法源码分析:
1 | /* |
actionMapToActionCreators方法源码分析:
1 | /* |
actionCreatorsFromActionMap方法源码分析:
1 | /* |
flattenActionMap方法源码分析:
1 | /* |
flattenWhenNode方法源码分析:
1 | /* |
unflattenActionCreators方法源码分析
1 | /* |
createActions实例
1 | /* |
总结
createActions方法看上去很复杂,但其内部的逻辑很清晰,主要目的就是遍历每个元素,然后分别调用createAction方法,最终还是生成普通的action,只不过如果只用createAction方法只能单独生成,而createActions可以同时生成多个,减少代码量,更加方便书写,也很清晰。