- Published on
useUpdate和useUnmount
- Authors

- Name
- 李丹秋
useUpdate
import { useCallback, useState } from 'react';
const useUpdate = () => {
const [, setState] = useState({});
return useCallback(() => setState({}), []);
};
export default useUpdate;
这个hook原理很简单,我们在想要触发渲染,就必须调用setState方法,所以这里提供了一个使用不到的state,只提供set方法,用来更新视图
useUnmount
import { useEffect } from 'react';
import useLatest from '../useLatest';
const useUnmount = (fn: () => void) => {
const fnRef = useLatest(fn);
useEffect(
() => () => {
fnRef.current();
},
[]
);
};
export default useUnmount;
useEffect 中return一个函数,是在组件卸载的时候执行。这个hook就是为了省去useEffect中,卸载的流程。 这里使用useLatest主要还是为了获取最新的函数,不使用的话,在一些异步的情况下,会获取不到正确的函数