setState 源码浅析

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

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

首先是reactComponent的setState方法

将新的状态放到队列中

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

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

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Micro_awake web

HTML5 Web缓存&运用程序缓存&cookie,session

在介绍HTML5 web缓存前,来认识一下cookie和session: session: 由于HTTP是无状态的,你是谁?你干了什么?抱歉服务器都是不知道的。...

2347
来自专栏王二麻子IT技术交流园地

九、VueJs 填坑日记之在项目中使用jQuery

很多人学习 js 都是从 jQuery 开始的,我也不例外。有时候进行一些操作的时候,还是感觉 jQuery 比较好用,那么,我们如何在项目中使用 jQuery...

31410
来自专栏技术博客

ExtJs九(ExtJs Mvc用户管理之一)

首先要做的是为用户信息创建一个模型,在Scripts\app\model目录下创建一个名为User.js的文件,然后添加以下模型定义代码:

932
来自专栏有趣的Python

15- vue django restful framework 打造生鲜超市 -vue和用户接口信息联调Vue+Django REST framework实战

Vue+Django REST framework实战 使用Python3.6与Django2.0.2(Django-rest-framework)以及前端v...

5245
来自专栏Django中文社区

真正的 Django 博客首页视图

在此之前我们已经编写了 Blog 的首页视图,并且配置了 URL 和模板,让 Django 能够正确地处理 HTTP 请求并返回合适的 HTTP 响应。不过我们...

3448
来自专栏macOS 开发学习

Mac开发之NSCollectionView使用以及自定义item

与iOS中的UICollectionView相似,在Mac开发中,我们也会常常用到NSCollectionView来展示内容,但在使用中,与iOS有较大差别,尤...

1232
来自专栏卡少编程之旅

类webpack模板的多页Vue项目模板

5026
来自专栏知晓程序

开发 | 天天用小程序页面跳转接口,但你真的了解它们吗?

今天,知晓程序(微信号 zxcx0101)就来为你详细解析,小程序中有关页面跳转的 4 个接口,帮助你更有效地利用小程序的 5 层页面层级限制。

1503
来自专栏守望轩

Visual Studio 2008 每日提示(八)

#071、给所有快速查询的结果标记上书签 原文链接:Did you know… You can bookmark all of your Quick Find...

2745
来自专栏Java成神之路

Eclipse_常用技巧_02_使用Eclipse进行源码分析

       在代码区中选择需要的类和接口定义,然后右击,选择“Open Type Hiberarchy”,可以在“Hiberarchy View”中看到继承关...

902

扫码关注云+社区