React 中 Effect Hook不同参数的使用规则
useEffect函数
// 第一个参数是一个回调函数
// 第二个参数是一个可选数组
function useEffect(effect: EffectCallback, deps?: DependencyList): void;
不同的参数和返回
- 不传参数
// 会每次 render 后都执行 React.useEffect(() => { console.log("类似于类组件中的 componentDidMoount 和 componentDidUpdate"); });
- 空数组
// 传入第二个参数,如果每次 render 后比较数组的值没变化,则不会在执行 React.useEffect(() => { console.log("类似于类组件中的 componentDidMount"); }, []);
- 一个或多个值的数组
// 传入第二个参数,只有一个值,比较该值有变化就执行; // 传入第二个参数,有2个值的数组,会比较每一个值,有一个不相等就执行; React.useEffect(() => { console.log("类似于类组件中的componentDidUpdate"); }, [state, props]);
- 返回一个函数
// 返回时传递一个函数进行卸载,在组件卸载时候调用; React.useEffect(() => { return () => { console.log("类似于类组价中componentWillUnmout"); } }, [state, props]);
总结
useEffect Hook 相当于类组件中 componentDidMount,componentDidUpdate,componentWillUnmount这三个函数的组合,通过传入不同的参数和返回一个函数达到类组件中生命周期函数的效果。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构