zent
Version:
一套前端设计语言和基于React的实现
16 lines (14 loc) • 417 B
text/typescript
import { useRef, useMemo } from 'react';
export function useLazy<T>(init: () => T, deps: any[]): () => T | null {
const valueRef = useRef<T | null>(null);
return useMemo(() => {
valueRef.current = null;
return () => {
if (!valueRef.current) {
valueRef.current = init();
}
return valueRef.current;
};
// eslint-disable-next-line react-hooks/exhaustive-deps
}, deps);
}