在青训营听了React的状态管理这门课程,对她进行一次笔记的总结.React 中的状态:2013 年 5 月 React 诞生。但 2015 年之前,大概都是 jQuery 的天下。2015 年 3 月 React 0.13.0 发布,带来了 class 组件写法。在 React class 组件时代,状态就是 this.state,使用 this.setState 更新。为避免一团乱麻,React 引入了 "组件" 和 "单向数据流" 的理念。有了状态与组件,自然就有了状态在组件间的传递,一般称为 "通信"。父子通信较简单,而深层级、远距离组件的通信,则依赖于 "状态提升" + props 层层传递。于是,React 引入了 Context,一个用于解决组件 "跨级" 通信的官方方案。但Context 其实相当于 "状态提升",并没有额外的性能优化,且写起来比较啰嗦。为优化性能,一般会添加多个 Context,写起来就更啰嗦。在项目没那么复杂时,还不如层层传递简单。什么是 "状态管理"?实用主义来说,"状态管理" 就是为了解决组件间的 "跨级" 通信。当然,在使用状态管理库时,其会带来一些衍生的思维模式,比如如何组织 state,如何拆分公共逻辑、业务逻辑、组件逻辑等,但归根结底,这些都不是核心缘由。核心就是为了解决实际问题 —— 为了通信。其它的各种概念与哲学,都不是必要的。Context 没那么好用,React 官方也没什么最佳实践,于是一个个社区库就诞生了。4. class 时代的状态管理:React class 组件时代,就是 Redux(及其相关衍生库)与 MobX 的故事。Redux 是符合 React 理念的实现。而 MobX 这种 "监听" 的模式,特点是 "不够 React",但用起来简单。老师讲的很好,我学的也很投入,感谢老师授课。希望老师们的事业蒸蒸日上,身体健康,生活美满!