发布于 2026-01-05 1 阅读
0

React:useEffect 与生命周期方法详解 DEV 的全球展示与分享挑战赛,由 Mux 呈现:展示你的项目!

React:useEffect 与生命周期方法的解释

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

React 的useEffectHook 结合了 `on` componentDidMount、 ` componentDidUpdateonset` 和componentWillUnmount生命周期方法。这非常有用,原因如下:它减少了代码量,简化了代码,并允许useEffect在单个组件中调用多个 Hook。

useEffect您可以点击此处阅读更多关于Hook 的信息: React 文档

有时,我们只想运行生命周期方法中的一个。以下速查表将帮助您实现所需的效果。

componentDidMount 等效项

为了使该钩子只运行一次(在组件挂载时),我们需要将一个空数组设置为钩子依赖项。



useEffect(() => {
  /* ComponentDidMount code */
}, []);


Enter fullscreen mode Exit fullscreen mode

componentDidUpdate 等效项

为了使该钩子在组件更新时运行(包括挂载),我们需要将至少一个变量设置为钩子的依赖项(在本例中为var1var2)。



useEffect(() => {
  /* componentDidUpdate code */
}, [var1, var2]);


Enter fullscreen mode Exit fullscreen mode

componentWillUnmount 等效项

为了使这个钩子在组件卸载时运行,我们需要从钩子中返回一个函数。如果我们希望清理函数仅在组件卸载后运行,则需要设置一个空数组。如果我们在依赖数组中设置一个或多个变量,则每次重新渲染时都会运行清理函数。



useEffect(() => {
  return () => {
   /* componentWillUnmount code */
  }
}, []);


Enter fullscreen mode Exit fullscreen mode

三者合起来



useEffect(() => {

  /* componentDidMount code + componentDidUpdate code */

  return () => {
   /* componentWillUnmount code */
  }
}, [var1, var2]);


Enter fullscreen mode Exit fullscreen mode

这些文章都是靠咖啡支撑着写出来的。所以,如果您喜欢我的作品并觉得它有用,不妨请我喝杯咖啡吧!我将不胜感激。

请我喝杯咖啡

感谢您抽出时间阅读这篇文章。如果您觉得有用,请点赞❤️或🦄,分享并留言。

文章来源:https://dev.to/prototyp/react-useeffect-explained-with-lifecycle-methods-296n