Redux概念理解

411 阅读1分钟

什么是Redux

ReduxJavaScript 状态容器,提供可预测化的状态管理。简单的说就是把数据集中起来管理,而不是分散在各个模块中,通常用于React的数据管理。主要做法是将公用的数据存储在store中,通过props传递给子组件。

什么是Action

Action是一个普通对象,主要作用是描述要做一件什么事情。例如点击一个按钮获取数据,Action就可写成{ type: FETCH_DATA, params: ... },这个对象描述了要获取数据的这样一件事情。

什么是Reducer

Reducer的作用是接受一个旧的stateAction,返回新的state,是更变数据的唯一入口,就像这样:

function todoApp(state = initialState, action) {
  return { ...state, todoList: action.todoList}
}

什么是Store

Store可以理解成一个仓库,用于存储Redux所有的state,也就是所有数据,并且还提供一些api

  • 提供 getState() 方法获取 state
  • 提供 ispatch(action) 方法更新 state
  • 通过 subscribe(listener) 注册监听器。

dispatch主要是把Action传递给Reducer,让Reducer知道如何更新state,添加一个变化监听器。subscribe每当 dispatch action 的时候就会执行,检测state的变化,再通过getState获取数据,然后更新视图。

最后附上Reux数据流图