vue、angular2及以上、react分别是如何实现数据(状态)发生change的?

vue我是知道的,通过Object.defineProperty来实现data的change

其他的是如何实现的?

烦请大神说的详细写,这里谢过

阅读 2.7k
2 个回答

react通过this.state来访问state,通过this.setState来更新state,最简单的情况是这种:
constructor(){

super(),
this.state = {
    value: 0
}

},
componentDidMount(){

this.setState({
    value : this.state.value + 1
})

}
初始化的时候设定state,需要更新的时候调用setState方法改变state的状态

关于setState的运行机制说起来还挺复杂了,简单点说就是setState通过一个队列机制来实现state的更新,react源码中setState是将所有需要更新的state放入一个状态队列中,最后集中做状态更新。

上面说了react的了,我来补充一下angular的,在angular版本里面还是采用脏值检测来检测数据的变更的,但是和angularjs不一样的是,angular引入了zone.js来处理数据的变更。性能可以达到angularjs脏值检测的3到10倍。详细的文章和资料可以谷歌一下有很多介绍。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题