Redux零碎知识点回顾
1、什么是state:应用中所有的数据都以 state的形式存放在store中。
2、什么是store:一个应用中只有一个store,用来维持应用所有的state树的对象。一个 State 对应一个 View,因此store是一个包含多个state的容器。
3、什么是action:action本质是个普通对象,必须用一个type字段表示将要执行的动作。
4、store 里能直接通过 store.dispatch() 调用 dispatch() 方法,但是多数情况下你会使用 react-redux 提供的 connect() 帮助器来调用。
5、单一数据源:整个应用的 state 被储存在一棵 object tree 中,并且这个 object tree 只存在于唯一一个 store 中。
6、State是只读的:惟一改变 state 的方法就是触发 action,action 是一个用于描述已发生事件的普通对象。
7、使用纯函数 reducers执行修改:Reducer 只是一些纯函数,它接收先前的 state 和 action,并返回新的 state。
8、action、state、reducer:action描述发生了什么事情;reducer指明了如何更新state;
9、reducer不能有的3个操作:修改传入的参数、 API 请求和路由跳转、使用Date.now()
或 Math.random()等非纯函数。
10、可以在reducer里指定state初始化的数据,重点需要考虑的是应该如何设计state对象的结构。
11、当reducer多了就需要对reducer进行拆分,最后需要使用combineReducers对拆分的reducer进行合并。
import {combineReducers} from 'redux';
export default combineReducers({
reducer1,
reducer2
})
12、创建store:要创建store只需要把根部的 reducing 函数 传递给 createStore。
createStore() 的第二个参数是可选的, 用于设置 state 初始状态。
import { createStore } from 'redux';
let store = createStore(reducer, [ 'Use Redux' ])
13、Redux 应用中数据的生命周期遵循下面 4 个步骤:
- 调用 store.dispatch(action)。
- store 调用传入的 reducer 函数。
- 根 reducer 应该把多个子 reducer 输出合并成一个单一的 state 树。
- store 保存了根 reducer 返回的完整 state 树。