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算法:
同级比较原则