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

react基本功

useLayoutEffect

useLayoutEffect 用于在浏览器重新绘制屏幕之前同步执行代码。它与 useEffect 相同,但执行时机不同。

主要特点
  • 执行时机useLayoutEffect 在 DOM 更新完成后同步执行,但在浏览器绘制之前。这使得它可以在浏览器渲染之前读取和修改 DOM,避免视觉上的闪烁或不一致。
  • 适用场景:主要用于需要同步调整布局的副作用操作,例如测量 DOM 元素的尺寸(如高度、宽度、滚动位置等)并根据这些值进行渲染。
  • 性能影响:由于 useLayoutEffect 阻塞了浏览器的绘制,如果执行复杂或耗时的操作,可能会导致性能问题或视觉卡顿。
useEffect 的区别
  • 执行时间
    • useEffect:在浏览器绘制之后异步执行。
    • useLayoutEffect:在浏览器绘制之前同步执行。
注意事项
  • useLayoutEffect 在服务器端渲染(SSR)中不会执行,因此在 SSR 场景下需要谨慎使用。
  • 尽量优先使用 useEffect,因为 useLayoutEffect 可能会影响性能。

总之,useLayoutEffect 是一个强大的工具,但应仅在需要同步处理 DOM 布局时使用。

useEffect

useEffect 可以用来实现类似类组件生命周期方法的功能。通过合理配置 ,可以模拟类组件中的 componentDidMountcomponentDidUpdatecomponentWillUnmount 等生命周期方法。

总结

但需要注意的是,useEffect 的执行时机是异步的,如果需要在浏览器绘制之前同步操作 DOM,可以使用 useLayoutEffect

useCallback和useMemo的区别

1. useMemo

useMemo 用于缓存计算结果,避免在组件重新渲染时重复执行复杂的计算逻辑。

特点
  • 用途:缓存计算结果。
2. useCallback

useCallback 用于缓存函数,避免在组件重新渲染时创建新的函数引用。

特点
  • 用途:缓存函数引用。
  • 执行时机:每次组件渲染时都会执行,但如果依赖项没有变化,则返回缓存的函数引用。
使用场景

    http://www.kler.cn/a/579171.html

    相关文章:

  • 【漫话机器学习系列】121.偏导数(Partial Derivative)
  • 【springcloud】快速搭建一套分布式服务springcloudalibaba(二)
  • 前端常用布局
  • Deeplabv3+改进4:在主干网络中添加GAMAattention|助力涨点!
  • Python实现鼠标点击获取窗口进程信息
  • Android FragmentContainerView如何使用
  • Oracle 字符类型对比
  • Manus AI Agent 技术解读:架构、机制与竞品对比
  • React 中 Hooks 函数及作用
  • 玛卡巴卡的k8s知识点问答(一)
  • 《打破常规:量子比特如何同时“是0又是1”》
  • 基于Spring Boot的多级缓存架构实现
  • 【vscode编辑器配置】
  • Linux中的TCP编程接口基本使用
  • PE文件结构详解(DOS头/NT头/节表/导入表)使用010 Editor手动解析notepad++.exe的PE结构
  • 启智畅想集装箱号码识别技术,具备的特点与优势
  • python机试1:读取和输出数据
  • 开发ai模型最佳的系统是Ubuntu还是linux?
  • 深度学习/强化学习调参技巧
  • 如何在rust中解析 windows 的 lnk文件(快捷方式)