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

React学习———useEffect和useLayoutEffect

useEffect

useEffect是React的一个Hook,用于在函数组件中处理副作用。副作用包括数据获取、订阅、手动DOM操作以及其他需要再渲染后执行的操作

基本用法

useEffect(() => {// 副作用逻辑return () => {// 可选的清理函数}
}, [依赖数组])
  1. 第一个参数:一个回调函数,包含副作用逻辑
    1-1. 回调函数会在组件渲染后执行
    1-2. 如果返回一个函数,这个函数会在组件卸载或依赖项更新时执行,用于清理副作用
  2. 第二个参数:依赖数组(可选)
    2-1. 如果不传依赖数组,useEffect会在每次渲染后执行
    2-2. 如果传空数组[],useEffect只会在组件挂载和卸载时执行一次
    2-3. 如果传特定的依赖项(如prop1,state1),useEffect只会在这些依赖项发生变化时执行

总结:

  • 无依赖数组:每次渲染后都会执行
  • 空依赖数组:只在组件挂载和卸载时执行
  • 带依赖数组:依赖项发生变化时执行
  • 清理函数:在组件卸载或依赖项更新时清理副作用

useLayoutEffect

useLayoutEffect是React的一个Hook,与useEffect类似,主要用于在DOM更新后同步执行的操作

基本用法

useLayoutEffect(() => {// 副作用逻辑return () => {// 可选的清理函数}
}, [依赖数组])

useEffect和useLayoutEffect的区别

  • useEffect在浏览器完成布局和绘制后异步执行(非阻塞渲染);useLayoutEffect在DOM更新后、浏览器绘制之前同步执行(阻塞渲染)
  • useEffect适用于不需要阻塞渲染的副作用,例如数据获取、事件监听等;useLayoutEffect适用于在DOM更新后立即执行的副作用,例如测量DOM元素尺寸、同步DOM操作等
http://www.xdnf.cn/news/6265.html

相关文章:

  • 数据防泄密安全:企业稳健发展的守护盾
  • 安卓开饭-ScrollView内嵌套了多个RecyclerView,只想与其中一个RecyclerView有联动
  • Kite AI 自动机器人部署教程
  • 使用深度学习预训练模型检测物体
  • MQTT 在Spring Boot 中的使用
  • 第二章 变量和运算符
  • C++取时间戳窗口
  • 在线黑白图像转换:简单却强大的视觉表达工具
  • 计算机组成原理:I/O
  • 死信队列-常见的业务场景
  • gd32e230c8t6 keil6工程模板
  • 关于嵌入式系统的知识课堂(一)
  • 2天长沙旅游规划
  • 几种运放典型应用电路
  • Vue:显示数据
  • HTML 颜色全解析:从命名规则到 RGBA/HSL 值,附透明度设置与场景应用指南
  • Flutter - UIKit开发相关指南 - 线程和异步
  • Seed1.5-VL:高效通用的视觉-语言基础模型
  • leetcode - 滑动窗口问题集
  • Qt 自定义槽 + 自定义信号(9)
  • 《数据库原理》部分习题解析1
  • 使用Haproxy搭建高效Web群集的完整指南
  • MATLAB中heatmap函数
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序的低集中度市场运营策略研究
  • RHCE认证通过率
  • LeetCode Hot100 (1/100)
  • 家庭宽带的内网穿透实践
  • 数学实验(Matlab符号运算)
  • 面试篇: Redis(持续更新)
  • vue3基础学习 [简单标签] (vscode)