概要
/[locale] ルートのパフォーマンス監査で検出された低優先度の改善項目をまとめたものです。
いずれも影響は軽微ですが、コード品質・一貫性の向上に寄与します。
改善項目
1. AuthStatusDisplay の mousedown リスナーが常時登録
- ファイル:
apps/web/src/app/[locale]/_components/AuthStatusDisplay.tsx:27-36
- 問題: ドロップダウンメニューの外側クリック検出のために
document.addEventListener('mousedown', ...) を常時登録。メニューが閉じている間も全クリックイベントを処理。
- 改善策:
isOpen が true の場合のみリスナーを登録する
2. react-icons の deep import 未使用
- ファイル:
apps/web/src/app/[locale]/_lib/icon-mapping.tsx 他
- 問題:
react-icons/fa からの named import で tree-shaking に依存。deep import (react-icons/fa/FaHome) への切り替えでビルド効率改善の余地あり。
- 改善策: deep import 形式への切り替えを検討
3. AuthProvider の value が useMemo 未使用
- ファイル:
apps/web/src/app/[locale]/_contexts/AuthContext.tsx
- 問題: Context value がメモ化されておらず、状態更新時に不要な再レンダリングの可能性。
- 改善策:
useMemo でメモ化
4. next-intl/navigation の Link と next/link が混在
- ファイル:
Header.tsx, Footer.tsx vs 他のコンポーネント
- 問題: ロケール付きリンクの生成方法が統一されていない。
- 改善策: 統一検討(Server Component の制約を考慮)
5. ミドルウェア未使用で Accept-Language ベースのロケール自動リダイレクトがない
- 問題:
next-intl の createMiddleware が未使用。ロケールなし URL が 404 になる。
- 改善策:
next-intl の createMiddleware 導入検討(ランディングページとの共存に注意)
6. Route Segment Config が一切未使用
- 問題:
export const dynamic / export const revalidate 等の設定がなく、Next.js のデフォルト動作に完全依存。
- 改善策: 変更頻度の低い DB 依存ページに ISR (
revalidate) 適用を検討
参考
パフォーマンス監査レポートより抽出
🤖 Generated with Claude Code
概要
/[locale]ルートのパフォーマンス監査で検出された低優先度の改善項目をまとめたものです。いずれも影響は軽微ですが、コード品質・一貫性の向上に寄与します。
改善項目
1.
AuthStatusDisplayの mousedown リスナーが常時登録apps/web/src/app/[locale]/_components/AuthStatusDisplay.tsx:27-36document.addEventListener('mousedown', ...)を常時登録。メニューが閉じている間も全クリックイベントを処理。isOpenがtrueの場合のみリスナーを登録する2.
react-iconsの deep import 未使用apps/web/src/app/[locale]/_lib/icon-mapping.tsx他react-icons/faからの named import で tree-shaking に依存。deep import (react-icons/fa/FaHome) への切り替えでビルド効率改善の余地あり。3.
AuthProviderの value がuseMemo未使用apps/web/src/app/[locale]/_contexts/AuthContext.tsxuseMemoでメモ化4.
next-intl/navigationのLinkとnext/linkが混在Header.tsx,Footer.tsxvs 他のコンポーネント5. ミドルウェア未使用で
Accept-Languageベースのロケール自動リダイレクトがないnext-intlのcreateMiddlewareが未使用。ロケールなし URL が 404 になる。next-intlのcreateMiddleware導入検討(ランディングページとの共存に注意)6.
Route Segment Configが一切未使用export const dynamic/export const revalidate等の設定がなく、Next.js のデフォルト動作に完全依存。revalidate) 適用を検討参考
パフォーマンス監査レポートより抽出
🤖 Generated with Claude Code