[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);
}
相关推荐
全栈前端老曹1 分钟前
【前端】Hammer.js 快速上手入门教程
开发语言·前端·javascript·vue·react·移动端开发·hammer.js
慧一居士3 分钟前
vue中 export default 和<script setup> 区别对比
前端·vue.js
do better myself4 分钟前
php导入关键词的脚本 300条分批导入
java·服务器·前端
亮子AI5 分钟前
【NestJS】为什么return不返回客户端?
前端·javascript·git·nestjs
Filotimo_7 分钟前
Vue3 + Element Plus 表格复选框踩坑记录
javascript·vue.js·elementui
DEMO派7 分钟前
前端如何防止接口重复请求方案解析
前端·vue.js·react.js·前端框架·angular
宁然也7 分钟前
浏览器的多进程架构
react.js
大风起兮云飞扬丶8 分钟前
web前端缓存命中监控方案
前端·缓存
pas13610 分钟前
32-mini-vue 更新element的children-双端对比 diff 算法
javascript·vue.js·算法
恋爱绝缘体112 分钟前
CSS3 多媒体查询实例【1】
前端·css·css3