[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);
}
相关推荐
Misnearch2 分钟前
npm包-serve包使用
前端·npm·node.js
IT_陈寒6 分钟前
React 18 性能优化实战:5个被低估的Hooks用法让你的应用快30%
前端·人工智能·后端
阿珊和她的猫13 分钟前
页面停留时长埋点实现技术详解
开发语言·前端·javascript·ecmascript
chilavert31816 分钟前
技术演进中的开发沉思-275 AJax : Slider
前端·javascript·ajax·交互
梦65022 分钟前
基于 Vue3 + TypeScript 封装 UEditor 富文本编辑器组件
前端·vue.js·typescript
沛沛老爹22 分钟前
从Web开发到AI应用——用FastGPT构建实时问答系统
前端·人工智能·langchain·rag·advanced-rag
锥锋骚年22 分钟前
Vue 3 Vben Admin 框架的Mention提及组件
前端·javascript·vue.js
QT 小鲜肉22 分钟前
【Linux命令大全】001.文件管理之mlabel命令(实操篇)
linux·运维·服务器·前端·笔记
七月巫山晴24 分钟前
【iOS】OC中的一些宏
前端·ios·objective-c
elangyipi12324 分钟前
从嵌套依赖到符号链接:4款主流npm包管理器的架构演进与深度对比
前端·架构·npm