响应式系统与React | 青训营笔记

47 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 2 天

1 React 的历史与应用

介绍 React 的发展历史以及应用场景。

2 React 的设计思路

介绍 React 的设计思想,为什么 React 要设计成这样。

UI编程痛点

状态更新,UI不会自动更新,需要手动地调用DOM进行更新。

欠缺基本的代码层面的封装和隔离,代码层面没有组件化。

UI之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到“callback Hell”。

响应式与转换式

响应式系统

前端UI

响应式编程

  1. 状态更新,UI自动更新。

“状态更新,UI不会自动更新,需要手动地调用DOM进行更新。”

  1. 前端代码组件化,可复用,可封装。

“欠缺基本的代码层面的封装和隔离,代码层面没有组件化。”

  1. 状态之间的互相依赖关系,只需声明即可。

“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自动更新、代码组件化、声明依赖关系
  • 科技飞速发展,技术不断迭代,本质都是为了更好、更快地解决问题

参考

掘金

Getting Started – React

nextjs.org/