【Redux】—基本认知

2018-04-27  本文已影响0人  南慕瑶

一、简述

1.定义:Redux是JavaScript状态容器,提供可预测化的状态管理。

2.设计动机:

解决,当JavaScript需要存储大量state时,管理state困难的问题。

3.要点:

(1)应用中所有的 state 都以一个对象树的形式储存在一个单一的 store 中。 

(2)唯一改变 state 的办法是触发 action(使用dispatch),一个描述发生什么的对象。

(3)为了描述 action 如何改变 state 树,你需要编写 reducers

4.理解三个角色:

(1)store:存储所有state的一个对象

(2)reducer:接收state、action的纯函数,返回新的state。描述不同的action如何改变state

(3)action:一个对象,描述我们要对state做哪种修改。通过dispatch发送,reducer就能拿到这个对象

【注】Redux只有一个单一的 store 和一个根级的 reduce 函数(reducer)

5.reducer的实际使用:

为了把 action 和 state 串起来,开发一些函数,这就是 reducer。

reducer 只是一个接收 state 和 action,并返回新的 state 的函数。

对于大的应用来说,我们编写很多小函数来分别管理 state 的一部分。之后再开发一个 reducer 调用这两个 reducer,进而来管理整个应用的 state。

6.进一步理解执行逻辑(个人理解):

通常,在actions.js中,执行dispatch,就是触发store中state更改的过程。

二、三大原则

1.单一数据源

整个应用的 state 被储存在一棵 object tree 中,并且这个 object tree 只存在于唯一一个 store 中。

2.state是只读的

唯一改变 state 的方法就是触发 action,action 是一个用于描述已发生事件的普通对象。

3.使用纯函数来执行修改(reducers是纯函数)

为了描述 action 如何改变 state tree ,你需要编写 reducers

eg:

上一篇 下一篇

猜你喜欢

热点阅读