localStorage を useState 初期値で読むと SSR/hydration 不一致が起きうる
React
フロントエンド
SSR
useState の初期化時に localStorage を読むと、SSR 初期値とクライアント hydration 値が不一致して hydration warning や初期表示ずれが起きうる (古典的な問題)。叞けるには初期 state を固定値にし useEffect で mount 後に読む。ただし、そのコンポーネントがデータ取得中 (SSR時) に必ずスピナー等を返し、localStorage を読む要素がローディング完了後にしか描画されないアーキテクチャなら、SSR/初回描画が一致するため mismatch は起きない。その場合は useEffect 版にすると逆に初期表示のちらつきと複雑度が增すため不要。指摘が一般論として正しくても、実アーキテクチャで起きるかを確かめてから判断する。