gpt4 book ai didi

reactjs - 为什么react函数组件在初始渲染时会执行两次内部代码?

转载 作者:行者123 更新时间:2023-12-04 07:54:00 28 4
gpt4 key购买 nike

我有以下代码:

// App.js
import { useEffect } from "react";

let count1 = 0;
function App() {
console.log("render");
console.log("before", count1);
count1 += 1;
useEffect(() => console.log("effect", count1));
console.log("after", count1);

return <button></button>;
}

export default App;

// index.js
import { StrictMode } from "react";
import ReactDOM from "react-dom";

import App from "./App";

const rootElement = document.getElementById("root");
ReactDOM.render(
<StrictMode>
<App />
</StrictMode>,
rootElement
);
初始渲染后,Chrome 中的控制台结果为:
enter image description here
我不知道为什么 count1 的值是 2最后。

最佳答案

这是因为StrictMode您的 index.js 中使用的包装器大概。
你可以阅读它here in the doc .
这是为开发人员提供的一项功能,可以更轻松地诊断错误,正如文档中所说:

Strict mode checks are run in development mode only; they do notimpact the production build.


如果你不喜欢这个功能,你可以从你的项目中删除它,你可以看到 here in sandbox ,在我评论 Strictmode 之后,它现在渲染一次。

关于reactjs - 为什么react函数组件在初始渲染时会执行两次内部代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66796633/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com