はじめに
Reactのアプリケーションを「npx create-react-app」コマンドで作成して
useEffectを設定すると困った現象が発生します。
useEffect(() => {
console.log("useEffectが呼び出されました");
}, []);
どうやらuseEffectの処理が2回実行されている模様。
初期化処理に重たい処理を入れているとレスポンスの悪化が懸念されます。
原因はデフォルトで入っているStrictMode
React 18のStrictModeは2回レンダリングされる仕様の模様。
簡単な対処方法は下記の様になっているindex.jsの「<React.StrictMode>」を削除します。
index.js
import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(
<App />
);
reportWebVitals();