当前位置: 首页 > news >正文

React立即更新DOM

正常情况下,react会等待set完毕后再进行页面渲染,所以在set时无法拿到更新后的dom

import { useRef, useState } from "react"export default () => {const div = useRef(null)const [count, setCount] = useState(0)const btnClick = () => {setCount(count + 1)console.log(div.current.innerHTML)}return (<><div ref={div}>count:{count}</div><button onClick={btnClick}>+1</button></>)
}

在这里插入图片描述

但flushSync可以强制React同步刷新提供的回调中的任何更新,有点像Vue中的$nextTick

import { useRef, useState } from "react"
import { flushSync } from "react-dom"export default () => {const div = useRef(null)const [count, setCount] = useState(0)const btnClick = () => {flushSync(() => {setCount(count + 1)})console.log(div.current.innerHTML)}return (<><div ref={div}>count:{count}</div><button onClick={btnClick}>+1</button></>)
}

在这里插入图片描述
但是flashSync会丧失自动批处理(多次set只会重新渲染一次),非必要情况下,不太建议使用。

http://www.lryc.cn/news/254055.html

相关文章:

  • [JavaScript前端开发及实例教程]计算器井字棋游戏的实现
  • 数据结构 / 队列 / 循环队列 / 结构体定义和创建
  • Java零基础——Redis篇
  • 分支和循环
  • MyBatis-xml版本
  • 在eclipse中安装python插件:PyDev
  • 25、pytest的测试报告插件allure
  • 从零开始学习 JavaScript APl(七):实例解析关于京东案例头部案例和放大镜效果!
  • 使用Pytoch实现Opencv warpAffine方法
  • Hello World
  • 【Python】Python读Excel文件生成xml文件
  • c++--类型行为控制
  • 笔记64:Bahdanau 注意力
  • 面试官问:如何手动触发垃圾回收?幸好昨天复习到了
  • 操作系统的运行机制+中断和异常
  • Python实战:批量加密Excel文件指南
  • 二叉树链式结构的实现和二叉树的遍历以及判断完全二叉树
  • vue中的动画组件使用及如何在vue中使用animate.css
  • qt 5.15.2 网络文件下载功能
  • Wifi adb 操作步骤
  • 湿货 - 231206 - 关于如何构造输入输出数据并读写至文件中
  • EasyMicrobiome-易扩增子、易宏基因组等分析流程依赖常用软件、脚本文件和数据库注释文件
  • 【Python百宝箱】漫游Python数据可视化宇宙:pyspark、dash、streamlit、matplotlib、seaborn全景式导览
  • 企业数字档案馆室建设指南
  • JavaScript中处理时间差
  • Multidimensional Scaling(MDS多维缩放)算法及其应用
  • 单片机_RTOS_架构
  • Golang rsa 验证
  • 网络安全威胁——跨站脚本攻击
  • Java利用UDP实现简单的双人聊天