React02 | 青训营笔记

28 阅读2分钟

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

1、组件化

  • 1、组件内部拥有私有状态State
  • 2、组件接受外部的Props状态提供复用性
  • 3、根据当前的State/Props,返回一个UI

react是作为一个响应式编程的

生命周期

react内部的各个钩子hook都有各自的生命周期,在render渲染的前后 image.png

hooks的写法

image.png hooks其实是面向函数式编程的,与原来的类式组件不同,属于函数式组件 正如图中表现的那样,hooks是需要从react里面引入的,需要用到什么钩子的时候就引入对应的钩子实现对应的功能即可。

也就是说类式组件是将所有的功能都打包在一起的,直接调直接使用即可;而hooks作为函数式组件,文件中使用的功能在第一行引入里面就能清晰的看出有哪些功能,而且是一个函数对应着一个功能,很清晰

hooks函数式 是未来,react官网也明确表示大力支持函数式编程了,改变原来的类式编程 image.png

虚拟DOM

image.png 这里面声明式API,就会区别于原来的指定式编程。

在指定式编程里面,假如需要烧水的话,指定式编程会先加水,找热水壶,开始烧水之类的,一步步来,需要我们亲自写好每一步的流程,每一步该做什么,而声明式编程只需要告诉浏览器:我要烧水了!即可

image.png

diff算法

这里面虚拟DOM最终还是需要交给真实DOM的,但是虚拟DOM在提交之前会先使用diff算法进行判断:修改了多少个节点,于是只需要将修改的节点返回给真实DOM就好,剩下的没有变化的节点就不需要反复提交,来增加浏览器反应时间了(因为假如直接使用真实DOM的话,每次修改内容都会重新提交整个页面,较耗时耗费精力,所以diff算法会极大的缩短这个时间)