验证:
虚拟DOM+Dom diff算法:最小化页面重绘
例子:
class HelloWorld extends React.Component{
constructor(props){
super(props);
this.state={
date:new Date()
}
}
componentDidMount(){
setInterval(()=>{
this.setState({
date:new Date()
})
},1000)
}
render(){
return (
<div>hello,<input type="text" placeholder="your name here"/>!
It is {this.state.date.toTimeString()}
</div>
)
}
}
ReactDOM.render(<HelloWorld/>,document.getElementById("example"));
这个例子可以说明,page中的date在更新的时候只是局部更新,而不是整个页面的更新,如果是整个页面的更新,input框中输入的东西会一瞬间没有 会闪烁。
这个是diff算法的思想:
虚拟DOM与DOM diff.png
网友评论