1)要想更新state中的数据,首先派发一个action,action通过dispatch方法传给store。
2)store把之前的数据previousState和传过来的action转发给reducers函数。
3)reducers接收state和action后进行数据处理,重新生成一个newState(原state只读不改),把newState作为返回值返回给store。
4)store接收newState,将新数据替换原来的数据。
5)react组件中观测到数据发生改变(store.subscribe),会从store里面重新取数据(state),更新组件的内容,页面发生变化。
actionTypes 拆分管理,统一管理,方便排错
使用actionCreator统一创建action
redux三个基本原则:
①:store必须是唯一的
②:只有store可以改变自己的内容
③:reducer 必须是纯函数
只有store能改变自己内容说明在reducer里我们不能直接操作state,只能通过定义新变量copy state的值,
然后对新变量进行操作并 return 出新变量,不允许直接改变state。
什么是纯函数?
给固定的输入,就一定会有固定的输出,并且不会有任何副作用。
所以对于异步函数(定时器、ajax数据请求等)、动态时间都不适意在reducer里订阅。
store核心api:
crerteStore(): 创建一个store
store.dispatch(action): 派发action,传递store
store.getState(): 获取store的所有数据
store.subscribe(): 订阅store的变化,接收的回调函数在store改变时候就会自动执行
参考: https://blog.csdn.net/qq3399013670/article/details/93332598
原文:https://www.cnblogs.com/yizhilin/p/14090371.html