ActionTypes与ActionCreator

69 阅读2分钟

本文介绍了在Redux框架下,如何通过拆分ActionTypes和使用ActionCreator来更好的管理和创建Action,提高代码的可维护性和可测试性。

ActionTypes的拆分

在Redux中,Action是用来描述发生了什么事情,会被派发给Store中的Reducer进行处理。在之前的代码实现中,我们直接在组件中创建Action并设置type,这样会存在一个问题,就是容易因为拼写错误而导致Action没有被正确处理,从而导致无法正常运行,并且也不会有错误提示。为了解决这个问题,我们可以将所有的type都定义在一个独立的文件中,即ActionTypes.js,这样就能够减少拼写错误的可能性。组件只需要引入相应的type即可。

我们可以在store下面创建一个ActionTypes.js,在这里吗定义变量来提供给发送和接受的双方:

image.png

然后组件引入:

image.png

全部换成常量代替字符串:

image.png

ActionCreator统一创建Action

同时,在业务逻辑复杂的情况下,到处都是Action,管理和测试都不方便。为了解决这个问题,我们可以使用ActionCreator来统一管理和创建Action。ActionCreator是一个函数,用来创建一个Action对象。在ActionCreator中,我们可以将Action的创建和处理逻辑都封装在一个函数里面,提高了代码的复用性和可维护性。

因此,我们可以在一个单独的文件中创建ActionCreator,这样就能够方便地管理和创建Action。通过引入ActionCreator来使用对应的Action,同时也方便进行单元测试,因为我们只需要测试ActionCreator即可。

我们写一个actionCreator文件,里面创建一些建造action的函数:

image.png

然后需要用到的地方引入:

image.png

其他Action也用同样的方法使用:

image.png