React 加油包之 Redux

271 阅读1分钟

(一个简短的Redux笔记)

Redux 是什么?

  • Redux 是 JavaScript 的状态管理容器
  • 可以用来提供可预测化的状态管理,重点是状态管理

核心概念

  1. Store Store 是存储数据的容器,函数 createStore 可以用来生成 store,createStore 接受一个函数作为参数,返回新生成的 store
  2. Action
  • Action 是一个对象,有一个必须的属性 type,表示 Action 的名称;
  • Action描述当前事件,是 改变 state 的唯一办法;
  • View 发出 Action 之后,数据被运送到了 state 然后 state就会发生变化。
  1. Reducer
  • Reducer 是一个函数,接受 Action 和当前 state 为参数,然后返回新的 state。
  • store 收到 action 后,给出新的 state,从而 view 被改变,这一整个过程,叫做 reducer (也可以理解为state计算过程)

API:

  1. store.getState()
    • 通过store.getState() 可以得到当前时刻的 state。state 是某个时间点的数据的集合。
  2. store.dispatch(action)
    • 是 view 发出 action 的唯一方法。store.dispatch接受一个action对象,将他发出去。

其他概念:

  1. Action Creator 定义一个函数来生成 Action,这个函数就叫做 Action Creator

  2. 纯函数

  • 参数不变,不调用系统的I/O API;
  • 同样的input得到的output一定相同;
  • Reducer就是一个纯函数
  1. store.subscribe()
  • 用于设置监听,state 变化时自动执行
  1. Redux Flow

WechatIMG2.jpeg

  1. Redux 和 React-Redux 的区别
  • Redux 是用于状态管理的 JavaScript 库(不仅限于管理 React,还可以管理 Angular等);
  • React-Redux 是Readux的官方React绑定库,能使React组件从Redux store 读取数据,向store分发actions以更新数据。