redux的基本概念及API见解

Store


Store: 保存数据的地方,整个应用只能有一个 Store。
Redux 提供 createStore 函数来生成 Store。//唯一仓库

State


Store 对象包含所有数据,如果想得到某个点的数据,就要对 Store 生成快照,这种时点的数据集合叫做 State
当前时刻的 State 可以通过 store.getState() 得到

Action


State 的变化,会导致 组件的变化。但是用户接触不到 State,可以接触到页面,所以 State 的变化必须是页面导致的。Action 就是 View 发出的通知,表示 State 应该要发生变化了
// Action 是一个对象。其中的 type 属性是必须的,其他属性为所传参数

store.dispatch()


store.dispatch() 是 View 发出 Action 的唯一方法
store.dispatch 接受一个 Action 对象作为参数,将它发送出去,Reducer接收

Reducer


Store 收到 Action 以后,必须给出一个新的 State, 这样 View 才会发生变化,这种 State 的计算过程就叫做 Reducer

Reducer 是一个函数,它接受 Action 和当前 State 作为参数,返回一个新的 State

Reducer 函数不用手动调用,store.dispatch 方法会自动触发 Reducer 的自动执行。为此,Store 需要知道 Reducer 函数,做法就是在生成 Store 的时候,将 Reducer 传入 createStore 方法

Reducer必须为纯函数

纯函数
Reducer 函数最重要的特征: Reducer 是一个纯函数

纯函数的约束

  • 不得改写参数
  • 不能调用系统 I/O 的 API
  • 不能调用 Date.now() 或者 Math.random()等不纯的方法,因为每次会得到不一样的结果

store.subscribe()


Store 可以使用 store.subscribe 方法设置监听函数,一旦 State 发生变化,就会自动执行这个函数

把this.setState()放到store.subscribe()中即可在stor中数据更改时同步更改state中的数据

待续。。。

猜你喜欢

转载自blog.csdn.net/weixin_45757442/article/details/104488744