vue、angular2及以上、react分别是如何实现数据(状态)发生change的?
vue
我是知道的,通过Object.defineProperty
来实现data
的change
其他的是如何实现的?
烦请大神说的详细写,这里谢过
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
vue
我是知道的,通过Object.defineProperty
来实现data
的change
其他的是如何实现的?
烦请大神说的详细写,这里谢过
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
react通过this.state来访问state,通过this.setState来更新state,最简单的情况是这种:
constructor(){
},
componentDidMount(){
}
初始化的时候设定state,需要更新的时候调用setState方法改变state的状态
关于setState的运行机制说起来还挺复杂了,简单点说就是setState通过一个队列机制来实现state的更新,react源码中setState是将所有需要更新的state放入一个状态队列中,最后集中做状态更新。
上面说了
react
的了,我来补充一下angular
的,在angular版本里面还是采用脏值检测来检测数据的变更的,但是和angularjs不一样的是,angular引入了zone.js来处理数据的变更。性能可以达到angularjs脏值检测的3到10倍。详细的文章和资料可以谷歌一下有很多介绍。