依赖项设为空数组
要让接口只执行一次,可以将useEffect 的依赖项设为空数组,这样 useEffect 就只会在组件挂载时执行一次,不会在组件更新时执行
useEffect(() => {
const fetchData = async () => {
const result = await axios.get('接口');
setData( result.data);
}
fetchData()
},[])
useRef 来保存一个标志位
使用 useRef 来保存一个标志位,确保 useEffect只执行一次。这种方法需要使用useRef来保存 isMountedRef.current 是否为 true 的状态,确保 useEffect 只执行一次。
const isMountedRef= useRef(false);
useEffect(() => {
if (!isMountedRef.current) {
isMountedRef.current = true;
const fetchData = async () => {
const result = await axios.get('接口');
setData( result.data);
}
fetchData();
}
},[])
优化ReactuseEffect:控制组件初次加载的数据获取
本文介绍了如何在React中使用useEffect仅在组件初次挂载时执行一次,方法包括设置依赖项为空数组和利用useRef保存标志位。这两种策略确保了数据获取仅在组件初始化时进行,提高性能。
1万+

被折叠的 条评论
为什么被折叠?



