useEffect
是 React 中的一个 Hook,用于在函数组件中执行副作用操作。它接收两个参数:一个副作用函数和一个依赖项数组。副作用函数会在组件渲染后执行,而依赖项数组用于控制副作用函数的执行时机。
useEffect
的第二个参数是一个空数组 []
时,副作用函数只会在组件首次渲染时执行一次,类似于类组件中的 componentDidMount
生命周期方法。原因:
解决方法:
React.memo
或 PureComponent
来优化子组件的渲染。原因:
解决方法:
import React, { useState, useEffect } from 'react';
function MyComponent() {
const [data, setData] = useState(null);
useEffect(() => {
// 这个副作用函数只会在组件首次渲染时执行一次
console.log('Component did mount');
// 模拟数据获取
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => setData(data));
// 清理函数(可选)
return () => {
console.log('Component will unmount');
};
}, []); // 空依赖项数组
return (
<div>
{data ? <p>{data.message}</p> : <p>Loading...</p>}
</div>
);
}
export default MyComponent;
useEffect
钩子配合空依赖项数组是一种强大的工具,用于处理组件挂载时的副作用操作。通过理解其工作原理和应用场景,可以有效避免常见的陷阱,并优化 React 应用的性能。
领取专属 10元无门槛券
手把手带您无忧上云