Ketcher源码学习-储备知识-dependencies(1)-Redux
一、核心概念 1. state:一个对象。用来储存需要全局共享的变量的值。 2. action:一个对象。用来清晰地描述在更新state的过程中,究竟发起了哪些操作。 3. reducer:一个纯函数。用来把state和action关联起来。接收旧的state和action,返回新的state。 二、基础概念 1. store:大本营。一个Redux应用只有一个store。 2. getState:store.getState(),用于获取state。 3. dispatch:store.dispatch(action),用于更新state。 三、进阶概念 1. 异步action:借助redux-thunk或redux-saga等第三方库来实现。 2. middleware:位于【action发起后,到达reducer前】的扩展点。 四、Ketcher中用到的Redux API 1. combineReducers:可以简化生成【主reducer】的样板代码。 2. applyMiddleware:用于引入middleware。 五、react-redux库 1. 将Redux与React关联起来。当Redux状态更新时,通知React更新组件。 2. Provider:一个React组件。将store放入全局的 Context 中。 3. connect:一个函数。将state和action作为props绑定到React组件上。 (1) 参数一 mapStateToProps:一个函数,接收state和ownProps作为参数。 (2) 参数二 mapDispatchToProps:一个函数,接收dispatch和ownProps作为参数。 (3) mapStateToProps与mapDispatchToProps不能互相访问到对方添加的props。 (4) 参数三 mergeProps:一个函数,接收stateProps、dispatchProps和ownProps作为参数。定义props的合并方式,默认使用Object.assign方法合并。 六、redux-thunk库 1. 提供Redux的异步解决方案。 2. Redux的dispatch仅支持传入【纯对象类型】的action,redux-thunk使di...