setState 源码浅析

先看下官网的一个demo 定时更新当前元素,

拿这个例子分析下setState的实现原理:

首先是reactComponent的setState方法

将新的状态放到队列中

新的状态是立即更新还是后面render更新(这个例子是在batchedUpdate中更新的情况)

这里采用事务处理为了可以执行用户绑定的生命周期的方法,要更新的状态最终放到dirtyComponents中s

最终dirtyComponents中的数据经过diff后渲染到页面

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏JAVA技术站

shell学习七函数 原

在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数...

722
来自专栏小程序的道路

小程序事件

当用户点击该组件的时候会在该页面对应的Page中找到相应的事件处理函数,跳转到demo页面。然后在对应的js中写出事件的具体实现方法

1416
来自专栏偏前端工程师的驿站

JS魔法堂:jQuery.Deferred(jQuery1.5-2.1)源码剖析

一、前言                              jQuery.Deferred作为1.5的新特性出现在jQuery上,而jQuery.aja...

2149
来自专栏前端之路

–vue2.0父子组件及非父子组件间实现通信

1042
来自专栏雨过天晴

原 PHPStrom 9系列激活码

1504
来自专栏技术总结

关于后台执行顺序

1234
来自专栏分布式系统和大数据处理

.Net Remoting(远程方法回调) - Part.4

根据这三点的变化,我们可以看出:客户端含有客户端对象,但它还需要远程服务对象的元数据来构建代理;服务端含有服务对象,但它还需要客户端对象的元数据来构建代理。因此...

692
来自专栏各种机器学习基础算法

上传代码之后,有的时候需要清除浏览器的缓存才能看到修改的效果

上传代码之后,有的时候需要清除浏览器的缓存才能看到修改的效果,那么用户他们如果没有清除浏览器缓存,那我们的更新岂不是没用了,下面有几行html代码应该可以解决这...

2618
来自专栏积累沉淀

JavaScript对象和数组

学习要点: 1.Object类型 2.Array类型 3.对象中的方法 什么是对象,其实就是一种类型,即引用类型。而对象的值就是引用类型的实例。 一...

1805
来自专栏zaking's

用js来实现那些数据结构07(链表01-链表的实现)

  前面讲解了数组,栈和队列。其实大家回想一下。它们有很多相似的地方。甚至栈和队列这两种数据结构在js中的实现方式也都是基于数组。无论增删的方式、遵循的原则如何...

37210

扫码关注云+社区