这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天
1 React 的历史与应用
介绍 React 的发展历史以及应用场景。
2 React 的设计思路
介绍 React 的设计思想,为什么 React 要设计成这样。
UI编程痛点
状态更新,UI不会自动更新,需要手动地调用DOM进行更新。
欠缺基本的代码层面的封装和隔离,代码层面没有组件化。
UI之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到“callback Hell”。
响应式与转换式
响应式系统
前端UI
响应式编程
- 状态更新,UI自动更新。
“状态更新,UI不会自动更新,需要手动地调用DOM进行更新。”
- 前端代码组件化,可复用,可封装。
“欠缺基本的代码层面的封装和隔离,代码层面没有组件化。”
- 状态之间的互相依赖关系,只需声明即可。
“Ul之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到“Callback Hell”。”
组件化
左边不是DOM树,DOM树不是JS变量,而是通过调用JS的DOM API修改
状态归属
若要两个组件状态共享,则状态归属于向上最近的祖宗节点
思考:
1.React :单项数据流,父->子
2.解决状态不合理上升问题——状态管理库
3.组件状态改变,如何更新DOM?
组件设计
1.组件声明了状态和UI的映射。
2.组件有Props/State两种状态。
3.“组件”可由其他组件拼装而成。
组件的代码:
1.组件内部拥有私有状态State。
2.组件接受外部的Props状态提供复用性。
3.根据当前的State/Props,返回一个Ul。
生命周期
3 React hooks 的写法
介绍基础的 React hooks 写法,以及常用的 hooks。
Virtual DOM(虚拟DOM)
Virtual DOM是一种用于和真实DOM同步,而在JS内存中维护的一个对象,它具有和DOM类似的树状结构
,并和DOM可以建立——对应的关系。
它赋予了React声明式的API:您告诉 React希望让U是什么状态,React就确保DOM匹配该状态。这使您可以从属性操作、事件处理和手动DOM更新这些在构建应用程序时必要的操作中解放出来。
4 React 状态管理库
缺点:降低了组件复用性,依赖外部
总结
- 编程方式:指令式、声明式、响应式
- 基于实践中遇到的问题,进行代码的改进——由UI编程的痛点引入React框架,实现UI自动更新、代码组件化、声明依赖关系
- 科技飞速发展,技术不断迭代,本质都是为了更好、更快地解决问题