Skip to content

perf: /[locale] ルートの低優先度パフォーマンス改善 #44

@k0kishima

Description

@k0kishima

概要

/[locale] ルートのパフォーマンス監査で検出された低優先度の改善項目をまとめたものです。
いずれも影響は軽微ですが、コード品質・一貫性の向上に寄与します。

改善項目

1. AuthStatusDisplay の mousedown リスナーが常時登録

  • ファイル: apps/web/src/app/[locale]/_components/AuthStatusDisplay.tsx:27-36
  • 問題: ドロップダウンメニューの外側クリック検出のために document.addEventListener('mousedown', ...) を常時登録。メニューが閉じている間も全クリックイベントを処理。
  • 改善策: isOpentrue の場合のみリスナーを登録する

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/navigationLinknext/link が混在

  • ファイル: Header.tsx, Footer.tsx vs 他のコンポーネント
  • 問題: ロケール付きリンクの生成方法が統一されていない。
  • 改善策: 統一検討(Server Component の制約を考慮)

5. ミドルウェア未使用で Accept-Language ベースのロケール自動リダイレクトがない

  • 問題: next-intlcreateMiddleware が未使用。ロケールなし URL が 404 になる。
  • 改善策: next-intlcreateMiddleware 導入検討(ランディングページとの共存に注意)

6. Route Segment Config が一切未使用

  • 問題: export const dynamic / export const revalidate 等の設定がなく、Next.js のデフォルト動作に完全依存。
  • 改善策: 変更頻度の低い DB 依存ページに ISR (revalidate) 適用を検討

参考

パフォーマンス監査レポートより抽出

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions