前置知识
useRef 返回一个可变的 ref 对象,其 .current 属性被初始化为传入的参数(initialValue)。返回的 ref 对象在组件的整个生命周期内保持不变。
本质上,useRef 就像是可以在其 .current 属性中保存一个可变值的“盒子”。
代码实现
代码语言:javascript复制// 返回组件的挂载状态,如果还没挂载或者已经卸载,返回false;反之,返回true
export const useMountedRef = () => {
const mountedRef = useRef(false);
useEffect(() => {
//页面加载完调用
mountedRef.current = true;
//页面卸载调用
return () => {
mountedRef.current = false;
};
});
return mountedRef;
};
代码语言:javascript复制//使用
const mountedRef = useMountedRef();