React如何立即更新DOM

 更新时间:2024年01月03日 09:15:01   作者:田本初  
这篇文章主要介绍了React如何立即更新DOM问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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只会重新渲染一次)

非必要情况下,不太建议使用

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • React源码state计算流程和优先级实例解析

    React源码state计算流程和优先级实例解析

    这篇文章主要为大家介绍了React源码state计算流程和优先级实例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 详解React中共享组件逻辑的三种方式

    详解React中共享组件逻辑的三种方式

    这篇文章主要介绍了详解React中共享组件逻辑的三种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • React项目经验总结及遇到的坑

    React项目经验总结及遇到的坑

    这篇文章主要介绍了React项目经验总结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • 解决React初始化加载组件会渲染两次的问题

    解决React初始化加载组件会渲染两次的问题

    这篇文章主要介绍了解决React初始化加载组件会渲染两次的问题,文中有出现这种现象的原因及解决方法,感兴趣的同学跟着小编一起来看看吧
    2023-08-08
  • 聊聊React onClick 传递参数的问题

    聊聊React onClick 传递参数的问题

    很多朋友向小编反映一个问题关于React onClick 传递参数的问题,当点击删除按钮需要执行删除操作,针对这个问题该如何处理呢?下面小编给大家带来了React onClick 传递参数的问题,感兴趣的朋友一起看看吧
    2021-10-10
  • 想用好React的你必须要知道的一些事情

    想用好React的你必须要知道的一些事情

    现在最热门的前端框架,毫无疑问是 React 。下面这篇文章主要给大家分享了关于想用好React的你必须要知道的一些事情,文中介绍的非常详细,对大家具有一定参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • 如何使用React构建一个掷骰子的小游戏

    如何使用React构建一个掷骰子的小游戏

    这篇文章主要介绍了如何使用React构建一个掷骰子的小游戏,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-12-12
  • ES6 class类链式继承,实例化及react super(props)原理详解

    ES6 class类链式继承,实例化及react super(props)原理详解

    这篇文章主要介绍了ES6 class类链式继承,实例化及react super(props)原理,结合实例形式详细分析了ES6 中class类链式继承,实例化及react super(props)原理相关概念、原理、定义与使用技巧,需要的朋友可以参考下
    2020-02-02
  • React this.setState方法使用原理分析介绍

    React this.setState方法使用原理分析介绍

    我们知道,在React中没有像Vue那种数据双向绑定的效果。而this.setState方法就是用来对数据进行更改的。而通过this.setState方法更改的数据,会让组件的render重新渲染,并且刷新数据
    2022-09-09
  • 在react配置使用less的完美方案

    在react配置使用less的完美方案

    由于 create-react-app 使用 webpack 作为其模块打包器,你需要修改 webpack 的配置来支持 .less 文件,这篇文章主要介绍了在react配置使用less的完美方案,需要的朋友可以参考下
    2024-04-04

最新评论