[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);
}
相关推荐
Aaron_Feng7 分钟前
适配Swift 6 Sendable:用AALock优雅解决线程安全与不可变引用难题
前端
2301_7965125219 分钟前
【精通篇】打造React Native鸿蒙跨平台开发高级复合组件库开发系列:Swipe 轮播(用于循环播放一组图片或内容)
javascript·react native·react.js·ecmascript·harmonyos
大时光27 分钟前
gsap 配置解读 --7
前端
熊猫钓鱼>_>33 分钟前
【开源鸿蒙跨平台开发先锋训练营】React Native 工程化实践:Hooks 封装与跨端 API 归一化
react native·react.js·华为·开源·harmonyos·鸿蒙·openharmony
念念不忘 必有回响1 小时前
前端判断文本是否溢出:单行与多行场景的完整解析
前端·javascript·css·vue.js
css趣多多1 小时前
vue3的组件间通信ref子组件需要把父组件要的ref数据开放
前端·javascript·vue.js
我是伪码农1 小时前
Vue 2.10
前端·javascript·vue.js
AAA阿giao1 小时前
React 性能优化双子星:深入、全面解析 useMemo 与 useCallback
前端·javascript·react.js
不想秃头的程序员2 小时前
父传子全解析:从基础到实战,新手也能零踩坑
前端·vue.js·面试
大时光2 小时前
gsap 配置解读 --5
前端