React学习笔记
虚拟DOM中Diff算法
在新旧虚拟DOM的比对时会用到Diff算法
- React中的setState是异步的,能将多次的setState变成一次setState,从而优化性能。
- 在虚拟DOM比对时,有一个同层比对的概念,好处是算法比较简单,从而速度比较快;逐层比对,当发现差异时,就停止比对了,直接从此DOM节点重新生成替换。
- 在React列表循环中引入了key,目的是为了在虚拟DOM比对时优化性能,key值要保持稳定,在程序中能不用index作为key值就不用,index会导致key不稳定。
React中ref的使用
<input
value={this.state.inputValue}
onChange={this.handleInputChange}
ref={(input) => {this.input = input}}
//ref指向的是当前input元素
/>
handleInputChange(){
//有了ref就可以这样写
//const value=this.input.value;
const value=this.target.value;
this.setState(()=>({
inputValue:value
}));
}