【发布时间】:2022-08-03 03:32:12
【问题描述】:
这是我的代码
import { useEffect } from \"react\";
import { Link } from \"react-router-dom\";
export const PageOne = () => {
useEffect(() => {
return () => {console.log(\"PageOne\")}
}, []);
return (
<>
<h1>PageOne</h1>
<Link to=\"/two\">Page two</Link>
</>
);
}
这是我在访问 PageOne 时在控制台中看到的
PageOne
这是我从 PageOne 导航到 PageTwo 时在控制台中打印的内容(PageOne 和 PageTwo 具有相同的结构)
PageOne
PageTwo
所以我认为 useEffect 中定义的返回函数在组件安装和卸载时运行。我在这个项目中使用 react-router-dom 和 Vite。
这是正常的吗?而且,是否存在仅在卸载组件时运行副作用功能的方法?
对不起,如果我犯了一些错误。我是一名新开发人员和一名英语学生。
-
可能是 React 严格模式,它两次挂载组件以实现更好的错误检查。 reactjs.org/docs/strict-mode.html
-
是的,您可以在此处github.com/facebook/react/issues/24502#issuecomment-1121089680 的此问题中看到有关此行为的一些论据
标签: reactjs use-effect