[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);
}
相关推荐
TA远方13 小时前
【JavaScript】Promise对象使用方式研究和理解
javascript·编程·脚本·web·js·promise·委托
阿赛工作室13 小时前
AI时代WEB开发人员生存与发展报告
前端·人工智能·node.js
ZC跨境爬虫13 小时前
跟着 MDN 学 HTML day_36:(深入理解 Comment 接口与 DOM 注释节点)
前端·javascript·ui·html·音视频·视频编解码
石小石Orz14 小时前
Harness Engineering 到底是什么?概念、实战与争议,一次全部讲清楚
前端·后端
悠哉摸鱼大王14 小时前
cesium学习(三)-3d tiles
前端·cesium
前端那点事14 小时前
Vue3自定义Hooks保姆级教程!从原理到企业级实战,告别混乱代码
前端·vue.js
前端那点事14 小时前
别再乱用Vue3响应式!ref、reactive、toRef、toRefs完整区别+企业级落地实战
前端·vue.js
yingyima14 小时前
Base64 编码解码实战:业务场景下的高效应用
前端
悠哉摸鱼大王14 小时前
cesium学习(五)-Primitive
前端·cesium
悟空瞎说14 小时前
Git Worktree 实战:多 AI 编码代理并行开发,彻底解决分支切换冲突痛点
前端·git