码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • setState是同步更新还是异步更新的


    setState用于变更状态触发组件重新渲染,更新视图UI.不清楚setState什么时候更新,所以难以解释是同步的还是异步的

    只需要说明什么是同步场景什么是异步场景

    首先我们要知道什么是合成事件?

    1.React给document挂上事件监听
    2.DOM事件触发后冒泡到document
    3.React找到对应的组件造出一个合成事件出来
    4.并按组件树模拟一遍事件冒泡

    在这里插入图片描述

    在这里插入图片描述

    调用顺序

    通常我们认为是异步的,React根据队列逐一执行,合并state数据完成后执行回调,根据结果更新虚拟DOM触发渲染.

    为什么设置为异步

    1.保持内部的一致性
    2.为后续的架构升级启用并发更新,根据数据的来源分配不同的优先级,再根据优先级并发处理提升渲染的性能
    3.统一渲染,减少渲染的次数.提升性能

    什么时候优势同步的呢???

    在这里插入图片描述
    正确的应该是输出0和1,为什么???

    因为我们的setState并不是真正的异步函数,是通过队列延迟操作来模拟实现的,通过isBatchUpdate来判断是先存进队列还是同步跟新…值为t则执行异步操作,值为f,则为同步更新

    在外部的原生事件中,并没有外层的封装和拦截,无法更新isBatchUpdate的值,导致值为false.所以我们会立即渲染.

    总结:
    在addEventListener . setTimeout.setlnterval这些原生事件中都会同步更新

    在这里插入图片描述


    大总结:

    在这里插入图片描述

  • 相关阅读:
    Kubernetes:kube-apiserver 之 scheme(二)
    项目完成 - 基于Django3.x版本 - 开发部署小结
    Flink学习笔记(二):Flink内存模型
    vue+asp.net Web api前后端分离项目发布部署
    Python 在 JMeter 中如何使用?
    Java电子招投标采购系统源码-适合于招标代理、政府采购、企业采购、等业务的企业
    rv1126-rv1109-修改波特率为115200
    SpringBoot + Security + JWT安全策略
    入门力扣自学笔记75 C++ (题目编号522)
    ElasticSearch从入门到精通--第四话(核心概念篇)
  • 原文地址:https://blog.csdn.net/qq_52563729/article/details/127795847
  • 最新文章
  • 一次 OOM 线上排查实录
    AI 测试全场景提效:功能 / 性能 / 安全 / 自动化,用 AI 重塑测试工作流
    你真的理解 volatile 关键字了吗?
    .NET 11 Preview 4 震撼发布:MAUI 抛弃 Mono,全量迁移 CoreCLR,性能与 NativeAOT 双炸场!
    博客园 × Halo 建站|国产电商新选择,商城版永久授权,3 折升级特惠!
    .NET 与鸿蒙的“技术巧遇”
    Codex 接入 Notion:把 AI 结果写回知识库
    曝华为"白嫖"开源团队技术方案事件——网友评论总结
    深度解读 AEC-Q100 Rev-J:为什么先进制程芯片的 ESD 电压降低?车规标准“放水”了?
    AI 相关概念之(基础层级):AI、ANI、AGI、ASI
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号