01什么是状态管理
02状态管理简介
- local state(prope) child2想知道自己child1同胞元素,对于这种情况我们优先考虑将状态向上一级,放在父组件中,由父组件自上而下的传递。react单项数据流。如果有多个子页面,这个方法就不适合。所以子页面与子页面之间的通信,react本身提供了contex。
- context context只需要在一个地方定义被使用,且下面的子组件全部都可以使用。问题:渲染力度不可控,造成不必要渲染。会形成金字塔。
3. redux
是由flux演变而来。flux缺点:ui组件和容器组件的拆分过于复杂,action和dispatcher绑定在一起,不支持多个store,store被频繁的引入和调用。
redux可以做时间旅行,适用于大型web项目。缺点:为了实现纯函数的reducer,redux必须处理各种副作用,加重心智负担,不易上手。
4. mobx
借助于装饰器的实现,是代码更加简洁易懂。
5. recoll
套和金字塔问题。主打性能。可以实现状态快照,比如填充首屏数据和数据状态回滚等。
6. zustand
轻量级。适合移动端。
03实现一个建议的状态管理工具
基本都基于发布/订阅来实现
04redux在项目中的实践
redux作为一款状态管理工具,主要是为了解决组件间通信的问题、 转换异步操作,生成原始的action,reducer函数就能处理相应的action,从而改变state,更新ui。