[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);
}
相关推荐
UXbot12 小时前
AI原型设计工具如何从PRD自动生成交互原型
前端·低代码·ui·交互·ai编程·原型模式
Csvn12 小时前
Vue 最佳实践
前端·vue.js
产品经理爱开发12 小时前
老师用AI开发的HTML教具如何在线托管访问
前端·html·ai编程·持续部署·源代码管理
星恒随风12 小时前
四天学完前端基础三件套(CSS篇)
前端·css·笔记·学习
贫民窟的勇敢爷们13 小时前
Vue项目性能优化的全流程指南
前端·vue.js·性能优化
之歆13 小时前
DAY_25 JavaScript 原型、原型链与值类型/引用类型 ── 深度全解(下)
开发语言·javascript·ecmascript
小短腿的代码世界13 小时前
Qwt实时FFT频谱分析深度解析:从信号采集到可视化渲染的完整架构设计
前端·qt·架构·交互
初见雨夜13 小时前
提测前让 AI 检查一下代码,我的 Bug 率降低了 20%
前端·ai编程
光影少年13 小时前
react的 useState 原理、批量更新机制
前端·react.js·掘金·金石计划
叫我少年13 小时前
Markdown 备忘清单
前端