Props,State与render函数:

当组件的state或者props发生改变的时候,render函数就会重新执行.

render函数重新执行,页面就会被重新渲染.

一个组件的生命周期函数可以不写,但是render函数必须的.

当父组件的render函数被运行时,它的子组件的render都将被重新运行一次.

每个组件都有自己独立的生命周期函数

React中虚拟DOM的diff算法:

1.state -> 数据
2.jsx -> 模板
3.数据+模板 生成虚拟DOM (虚拟DOM就是一个JS对象,它用来描述真实的DOM) (损耗了性能)

['div',{id:'abc'},['span',{},'hello world']]

4.用虚拟DOM的解构生成真实的DOM,来显示

<div id="abc"><span>hello world</span></div>

5.state 发生变化
6.数据 + 模板 生成新的虚拟DOM (极大的提升了性能)
7.比较原始DOM和新的虚拟DOM的区别,找到区别就是span中的内容发生改变(极大的提升性能)
8.直接操作DOM,改变span中的内容

优点:

1.性能提升了.

2.它使得跨端应用得以实现.React Native.

React中setState方法

setState方法是异步的,为了提升React底层的性能,多次setState会合并到一次.做一次虚拟DOM的比对,然后进行更新.(设计成异步函数)

diff算法:

同级比较原则