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

发布于 2022-09-05 23:35:04 字数 134 浏览 28 评论 0

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

其他的是如何实现的?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

塔塔猫 2022-09-12 23:35:04

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放入一个状态队列中,最后集中做状态更新。

寂寞美少年 2022-09-12 23:35:04

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文