什么是Redux?
Redux是JavaScript应用的状态容器,提供可预测的状态管理! Redux除了和React一起用外,还支持其它框架;它体小精悍(只有2kB, 包括依赖),却有很强大的插件扩展生态! Redux提供的模式和工具使您更容易理解应用程序中的状态何时、何地、为什么以及如何更新,以及当这些更改发生时,您的应用程序逻辑将如何表现!
我什么时候应该用Redux?
Redux在以下情况下更有用:
●在应用的大量地方,都存在大量的状态
●应用状态会随着时间的推移而频繁更新,更新该状态的逻辑可能很复杂
●中型和大型代码量的应用,很多人协同开发
Redux库和工具
Redux是一个小型的独立JS库,但是它通常与其他几个包一起使用:
React-Redux:官方库,让React组件与Redux有了交互,可以从store读取些state,可以通过dispatch actions来更新store!
Redux Toolkit:推荐的编写Redux逻辑的方法。包含必不可少的包和函数。简化了大多数Redux任务,防止了常见错误,并使编写Redux应用变得更加容易。
Redux DevTools Extension:可以显示Redux存储中状态随时间变化的历史记录,方便调试应用程序。
redux基础流程:
1.创建store
为了在各个组件中,都可以把创建的store获取到,我们可以基于上下文的方
案:
1.在index.jsx中,基于ThemeContext.Provider把创建的store放在上下文中
2.因为所有组件最后都是在index.jsx中渲染,所有组件都可以理解为
index.jsx的后代组件,基于上下文方案,获取在上下文中存储的store就可以
了!!!
2.创建上下文并且引入
祖先组件中
错误写法:
浅拷贝,每次都是第一次产生的那个闭包!!!!所以无法更新
正确写法:
3.后代组件:类组件
3.后代组件:函数组件
redux具体的代码编写顺序
1.创建store,规划出reducer ,当中的业务处理逻辑可以后续不断完善,但是最开始reducer的这个架子需要先搭建取来
2.在入口中,基于上下文对象,把store放入到上下文中;需要用到store的组件, 从上下文中获取! !
3.组件中基于store,完成公共状态的获取、和任务的派发
- 使用到公共状态的组件,必须向store的事件池中加入让组件更新的办法;只有这样,才可
以确保,公共状态改变,可以让组件更新,才可以获取最新的状态进行绑定! !