返回顶部
首页 > 资讯 > 精选 >React18状态批处理怎么使用
  • 138
分享到

React18状态批处理怎么使用

2023-06-30 11:06:33 138人浏览 安东尼
摘要

本篇内容介绍了“React18状态批处理怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!状态自动批处理18版本之前, 在合成事件之外的

本篇内容介绍了“React18状态批处理怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

状态自动批处理

18版本之前, 在合成事件之外的原生事件中(例如 setTimeout, onclick, promise) , 更新状态并不会进行批量处理(合并), 这意味着在原生事件中多次调用状态更新会造成多次应用的重新渲染, 往往我们只需要最后一次即可, react在18版本后优化了这个问题

import { useState } from 'react' function App() {  const [num1, setNum1] = useState(1)  const [num2, setNum2] = useState(1)  const add = () => {    setTimeout(() => {      setNum1((pre) => pre + 1)      setNum2((pre) => pre + 1)    })  }  console.log('渲染了')  return (    <div className="App">      <header className="App-header">react 18</header>      <p>num1 : {num1}</p>      <p>num2 : {num2}</p>      <button onClick={add}>+1</button>    </div>  )} export default App

17版

点击四下后,组件渲染了8次

React18状态批处理怎么使用

 18版

点击4下后, 组件渲染了4次

React18状态批处理怎么使用

 退出状态自动批处理

在某些场景下 我们可能不需要批处理状态更新, 此时我们需要用到 react-dom 提供的flushSync函数, 该函数需传入一个回调, 并且会同步刷新回调中的状态更新

import { useState } from 'react'import { flushSync } from 'react-dom' function App() {  const [num1, setNum1] = useState(1)  const [num2, setNum2] = useState(1)  const add = () => {    setTimeout(() => {      flushSync(() => {        setNum1((pre) => pre + 1)      })      flushSync(() => {        setNum2((pre) => pre + 1)      })    })  }  console.log('渲染了')  console.log(num1, num2)  return (    <div className="App">      <header className="App-header">react 18</header>      <p>num1 : {num1}</p>      <p>num2 : {num2}</p>      <button onClick={add}>+1</button>    </div>  )} export default App

React18状态批处理怎么使用

 要点概述

原生事件内状态更新改为批量处理

不需要批量处理时 使用 react-dom 提供的flushSync函数, 此函数同步刷新参数回调内的状态更新

“React18状态批处理怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: React18状态批处理怎么使用

本文链接: https://lsjlt.com/news/328594.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • React18状态批处理怎么使用
    本篇内容介绍了“React18状态批处理怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!状态自动批处理18版本之前, 在合成事件之外的...
    99+
    2023-06-30
  • React18之状态批处理的使用
    目录状态自动批处理17版 18版 退出状态自动批处理 要点概述react在3月29号正式发布了18版本, 此次更新包括: 状态自动批处理, 客户端渲染a...
    99+
    2024-04-02
  • react18中react-redux状态管理怎么实现
    这篇文章主要介绍“react18中react-redux状态管理怎么实现”,在日常操作中,相信很多人在react18中react-redux状态管理怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”rea...
    99+
    2023-06-30
  • Vue3状态管理之Pinia怎么使用
    这篇文章主要介绍“Vue3状态管理之Pinia怎么使用”,在日常操作中,相信很多人在Vue3状态管理之Pinia怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue3状态管理之Pinia怎么使用”的疑...
    99+
    2023-06-30
  • Vuex中状态管理器怎么使用
    本文小编为大家详细介绍“Vuex中状态管理器怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vuex中状态管理器怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、Vuex是什么?Vuex在Vue项...
    99+
    2023-07-02
  • vue怎么使用Vuex状态管理模式
    这篇“vue怎么使用Vuex状态管理模式”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue怎么使用Vuex状态管理模式”文...
    99+
    2023-06-29
  • Vue新的状态管理Pinia怎么使用
    今天小编给大家分享一下Vue新的状态管理Pinia怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。为什么有 Vuex ...
    99+
    2023-07-06
  • 怎么使用Batch批处理脚本
    这篇文章主要介绍“怎么使用Batch批处理脚本”,在日常操作中,相信很多人在怎么使用Batch批处理脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Batch批处理脚本”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-16
  • 如何使用批处理实现计算机/网络设备状态监测脚本
    这篇文章主要为大家展示了“如何使用批处理实现计算机/网络设备状态监测脚本 ”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用批处理实现计算机/网络设备状态监测脚本 ”这篇文章吧。以前自己写的...
    99+
    2023-06-09
  • react怎么管理状态
    这篇文章主要介绍“react怎么管理状态”,在日常操作中,相信很多人在react怎么管理状态问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”react怎么管理状态”的疑惑有所帮...
    99+
    2024-04-02
  • bat批处理if命令怎么使用
    在批处理中,可以使用`if`命令来执行条件判断。下面是`if`命令的用法:1. 语法:```batchif condition co...
    99+
    2023-08-11
    bat批处理
  • 怎么使用批处理禁用组策略
    小编给大家分享一下怎么使用批处理禁用组策略,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!利用批处理禁用(启用)组策略 regsvr32 /s /u gpedit....
    99+
    2023-06-08
  • React18新增特性released怎么使用
    本文小编为大家详细介绍“React18新增特性released怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“React18新增特性released怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。新...
    99+
    2023-06-30
  • angular状态管理器NgRx怎么用
    本篇内容主要讲解“angular状态管理器NgRx怎么用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“angular状态管理器NgRx怎么用”吧!NgRx 是 ...
    99+
    2024-04-02
  • 怎么使用无状态部署Deployment
    本篇内容介绍了“怎么使用无状态部署Deployment”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!创建集...
    99+
    2024-04-02
  • Flutter有状态组件怎么使用
    今天小编给大家分享一下Flutter有状态组件怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。有状态组件flutter...
    99+
    2023-06-26
  • 批处理命令call、start、goto怎么使用
    本篇内容介绍了“批处理命令call、start、goto怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、call命令CALL从一个...
    99+
    2023-06-29
  • informix CKPT REQ的状态处理是怎么进行的
    informix CKPT REQ的状态处理是怎么进行的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 一个数据...
    99+
    2024-04-02
  • vue.js状态管理vuex中store怎么用
    这篇文章主要介绍vue.js状态管理vuex中store怎么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、状态管理(vuex)简介vuex是专为v...
    99+
    2024-04-02
  • Vue全新状态管理Pinia怎么用
    这篇文章给大家分享的是有关Vue全新状态管理Pinia怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Vuex 作为一个老牌 Vue 状态管理库,大家都很熟悉了Pinia 是 Vue.js 团队成员专门为 V...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作