[React]常见Hook实现之useUpdateEffect

useUpdateEffect是一个自定义的React Hook,用于在组件更新时执行副作用。它的实现原理如下:

  1. useEffectuseLayoutEffectuseUpdateEffect内部使用useEffectuseLayoutEffect来注册副作用函数。这两个Hook函数都接受一个回调函数和依赖项数组作为参数。当依赖项数组发生变化或组件更新时,副作用函数会被触发。
  2. 初始化阶段:在组件的初始化阶段(即首次渲染)时,useUpdateEffect会记录一个标记(flag),表示当前组件是首次渲染。
  3. 更新阶段:在组件的更新阶段,useUpdateEffect会判断当前是否是首次渲染。如果是首次渲染,则不执行副作用函数;如果不是首次渲染,则执行副作用函数。

通过这种方式,useUpdateEffect可以在组件更新时执行副作用函数,而在首次渲染时跳过执行。这在某些场景下很有用,例如当需要在组件首次渲染后执行一些初始化操作,而在后续更新时不再执行这些初始化操作。

js 复制代码
function useUpdateEffect(effect, dependencies) {
  const isFirstRender = useRef(true);

  useEffect(() => {
    if (isFirstRender.current) {
      isFirstRender.current = false;
    } else {
      effect();
    }
  }, dependencies);
}
相关推荐
摸鱼老王不带86 分钟前
不用后端,纯前端读出"网站眼里你的真实出口 IP"——聊聊 Cloudflare 的 cdn-cgi/trace
前端
程序员黑豆17 分钟前
鸿蒙开发入门:Row 和 Column 布局组件详解
前端·harmonyos
hoLzwEge39 分钟前
前端环境变量配置指南:.env 文件详解
前端·前端框架
猫头_1 小时前
AI 流式传输工程指南:有了 EventSource 为何还要 Fetch?
javascript·http·llm
hunterandroid1 小时前
Paging 3 RemoteMediator 实战:构建离线优先的分页列表
android·前端
Underwood_171 小时前
星级评价——了解useState
前端
hunterandroid1 小时前
[鸿蒙从零到一] ArkUI 组件化实战:构建可复用、可组合的自定义组件
前端·华为·架构
一只公羊1 小时前
iPhone摄像头 在开发/调试过程中强行停止 App,导致 `AVCaptureSession` 没有被正常释放
前端
良木林2 小时前
滑动窗口 - LeetCode hot 100
javascript·算法·leetcode·双指针·滑动窗口
浮江雾2 小时前
Flutter第十节-----Flutter布局与组件全解析
android·开发语言·前端·学习·flutter·入门