ahooks库

100 阅读1分钟

useUpdateEffect

useUpdateEffect用法等同于useEffect,但是会忽略首次执行,只在依赖更新时执行。 场景:不想在首次渲染时就执行effect,比如搜索时,只在keyword变化时才调用search方法。

源码实现

import React, {useEffect, useRef} from 'react';

const useUpdateEffect = (effect: React.EffectCallback, deps: React.DependemcyList)=>{
    let isFirst = useRef(true);
    useEffect(()=>{
        if(isFirst.current){
            isFirst.current = false;
            return;
        }
        return effect();
    },[deps])

}