这是我参与「第五届青训营 」笔记创作活动的第7天
状态管理库
状态归属问题
在这个页面中,当前价格所对应的数据(状态)应该属于哪个组件呢?因为可以将父组件的状态传入子组件中,是不是应该将价格的状态放Root中呢?
那如果将价格的状态放在了
Root节点中,状态归属两个节点向上寻找到最近的祖宗节点,【当前价格】该如何改变?因为当前价格属于Root节点,但是触发价格改变的事件却不是源于Root节点,而是源于型号选择组件和颜色选择组件,这该怎么办呢?
因为在JS中,函数是一等公民,所以可以编写一个onChangeValue函数来向下传递。
这就引出了一些问题:
- React是单向数据流,还是双向数据流?
- 如何解决状态不合理上升的问题?
- 组件的状态改变后,如何更新DOM
想要解决这些问题就可以使用状态管理库
核心思想图解
优点:通过定义和隔离状态管理中的各个概念,并通过强制性的规则来维护视图和状态间的独立性,我们的代码边会变得更加结构化和易于维护、跟踪;
一些状态管理库
- redux
- mobx
- xstate
- recoil
状态机
应用级框架科普
硅谷明星创业公司 Vercel 的 React 开发框架,稳定,开发体验好,支持Unbundled Dev,sWc等,其同样有 Serverless一键部署平台帮助开发者快速完成部署。口号是“Let's Make WebFaster"
字节跳动Web Infra团队研发的全栈开发框架,内置了很多开箱即用的能力与最佳实践,可以减少很多调研选择工具的时间。
无API思想的全栈开发框架,开发过程中无需写API调用与CRUD逻辑,适合前后端紧密结合的小团队项目。