redux中action与reducer

                                                                 redux中action与reducer

action

对于action,将数据从应用程序发送到存储的有效信息负载。可以将其理解为用户对于要去操作某个动作而做出的反应。是改变store数据的唯一方法。可以通过store.dispatch(action),将其发送给store。

下面列举一些常见的action的实例:

redux中action与reducer

对于action,其是一个普通的JS对象,但是在action中你必须得有type这个属性,这个属性通常用一个字符串表示。但是在通常的情况下不这样做,而是将这个表示字符串的变量封装在一个文件里面,你去调用里面的变量就可以了。

redux中action与reducer

action  creaters

就是创建action的函数,在redux中,其创建的方式如果下面这种

redux中action与reducer

然后再redux中,还需要使用dispatch这个方法去监听,最后将这个过程返回到state中。下面就是监听的语法过程

redux中action与reducer

这是第一种,下面的一种方式是先声明函数表达式,最后去调用即可

redux中action与reducer

reducer

指定应用程序的状态如何更改,以响应发送到存储的操作。对于reducer首先就得明白其实质就是一个纯函数,在redux中,第一个参数表示的意思是一个state,最后返回的是一个新的newState。这就是纯函数的概念,接受一个什么样子的state,就返回同样类型的state。

redux中action与reducer

经过上面的介绍后,接下来就是去写一个reducer,首先就是对于初始化reducer的两种方式

redux中action与reducer

第二种就是使用es6的语法来初始化这个过程,

redux中action与reducer

接下来就是将接收到的信息来进行处理的过程了

redux中action与reducer

在上面的这个例子中,主要需要注意的地方就是Object.assgin({},state,{ visibilityFilter : action.filter }),在这里面需要注意的是,这种方式是间接的去改变state,而不是直接去改变的state。在Object.assgin()的这个方法中需要传入三个参数,第一个是空对象,第二个是此时的state,第三个是你需要去更改state的逻辑,执行完这个方法后就会返回一个newState。

处理多个action时的操作,以下面的案例所示:

redux中action与reducer

整合reducer

首先当你对上面所说的内容有了个了解之后,还需要明白我们在处理一个项目中的数据的时候,每个独立的页面中的数据,都会有一个reducer,这些reducer就是一个子reducer,我们使用combineReducers(),来将所有的逻辑进行整合。如下面的例子所示:

redux中action与reducer

首先需要的就是从redux中引入combineReducers,然后再对所有的reducer进行整合。

redux中action与reducer

上面就是对你的子reducer进行整合的办法。下面举一个实际的例子。

redux中action与reducer

redux中action与reducer

在这个例子中,就是将两个reducer给整合在一起的实际例子。

对于action与reducer,主要是理清楚他们的怎样去实现这整个的转化过程。在上面所述的还有一个就是action creators与combineReducers()的用法与使用的情况。