vue
我是知道的,通过Object.defineProperty
来实现data
的change
其他的是如何实现的?
烦请大神说的详细写,这里谢过
vue
我是知道的,通过Object.defineProperty
来实现data
的change
其他的是如何实现的?
烦请大神说的详细写,这里谢过
上面说了react
的了,我来补充一下angular
的,在angular版本里面还是采用脏值检测来检测数据的变更的,但是和angularjs不一样的是,angular引入了zone.js来处理数据的变更。性能可以达到angularjs脏值检测的3到10倍。详细的文章和资料可以谷歌一下有很多介绍。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
react通过this.state来访问state,通过this.setState来更新state,最简单的情况是这种:
constructor(){
},
componentDidMount(){
}
初始化的时候设定state,需要更新的时候调用setState方法改变state的状态
关于setState的运行机制说起来还挺复杂了,简单点说就是setState通过一个队列机制来实现state的更新,react源码中setState是将所有需要更新的state放入一个状态队列中,最后集中做状态更新。