React 状态管理库与应用级框架科普
- 问题:当两个距离较远的组件想共享状态时,如果非要把状态放在组件内部,就会让这个状态充斥在一个很高的位置上(甚至会导致很多状态堆积在根节点上),那我们有没有办法解决这个问题呢?有,状态管理库
状态管理库
状态管理库核心思想
- 坏处:这种方案同样也会坏处,使组件的复用性降低,因为它和外部的Store存在强耦合(这决定了它偏向用于实际的业务代码, 很明显它不适合用于开发组件库,一个组件库应该是抽象地非常好,复用性非常强的)
- 具体使用时,一般时是把多组件共享的数据放在store里,只属于一个组件的数据只放在该组件里
- 实际例子,比如说用户头像,我们就可以放在store中,在第一次访问时,发送一次请求拿到头像的数据然后放在store中,然后所有组件都可以拿到头像的数据,无需再请求,也无需在组件之间传递
- 另一种理解状态管理库的方法: 可以把所有节点理解成为一个大的UI组件,而Store是这个大的UI组件的状态
推荐的React状态管理库
补充知识 状态机
- 红绿灯 解释为 状态机
(状态管理库 也可以看作 是一个 状态机)
应用级框架科普
NEXT JS
Next.js 为您提供生产环境所需的所有功能以及最佳的开发体验:包括静态及服务器端融合渲染、 支持 TypeScript、智能化打包、 路由预取等功能 无需任何配置。
MODERN JS
BLITZ JS
提供了一个完整的全栈服务器端渲染(基于 Next.js)React 应用程序脚手架,并内置了相应的配置和后端。就像 Rails 框架在 Ruby 上所做的那样。