Redux_1
一、Redux是啥
Redux是一个用于JS状态容器(或者管理器,叫啥随便),提供可以预测化的状态管理
Redux可以构建一致性的应用,运行于不同环境(客户端、服务器、原生应用),并且容易测试
Redux除了和React合用外,还支持其它界面库,而且体积小(2kb)不用担心资源占用
二、设计初衷:
JS发展日益复杂,JS需要管理更多state,这些state可能包括服务器响应、缓存数据、本地生成未持久化到服务器的数据,UI状态等
管理不断变化的state很麻烦,如果一个model的变化会引起另一个model变化,那么当view变化时,就可能引起对应model以及另一个model的变化,依次可能会引起另一个view的变化。所以就会产生混乱
三、Redux三大核心:
1、单一数据源:store就是Redux容器,里面挂历object tree,而object tree上就挂载着各个组件的state,这样便能实现单一数据源的管理,避免了组件间的state数据冲突
2、 State是只读的
唯一改变state的方法就是触发action,action是一个用于描述已经发生事件的普通对象
这样确保了视图和网络请求都不能直接去修改state,相反,它们只能表达想要修改的意图,因为所有的修改都被集中化处理,并且严格按照一个接一个的顺序执行
store.dispatch({type: 'COMPLETE_TODO',index:1})
3、使用纯函数执行修改
为了描述action,如何去改变state tree,你需要去编写 Reducers
Reducers只是一些纯函数,它接收先前的state和action,并且返回新的state.
可以复用,可以控制顺序、传入附加参数
关键词:state、action、store、reducer