🚀

react-router v6 アプリの起動速度が 10倍 高速化した

こんにちは、Freelance Developer の天海です。

お仕事で関わってるTAIANでやった react-router v6 プロジェクトのパフォーマンス改善したことを紹介します。

起動速度を約10倍まで高速化することに成功しました。

LCP from 3.62s → 0.24s (~15× faster)

ついでに vite のバージョンアップも行ったことで、ビルド時間も1.53倍高速化されました。

build: 1.53x faster ⚡

主にやったこと

react-router v6.9.0 からサポートされた Lazy Route Modules を使ってルーティングの遅延読み込みを実現しました。

簡単な記録

1. yarn workspace を使っていたため、ビルド時に react-router のバージョン不整合が発生

→ error message: Matched route does not have an element

react-router error: not have an element

解決方法:react-router-dom version 統一

react-router-dom version 統一の差分

2. Vite 3 の HMR 機能が Lazy Route に正しく対応していなかった

-> error message: {hook} may be used only in the context of a <Router> component

解決方法:Vite バージョンアップ

3. Vite バージョンアップの関連修正

3.1 Vite v7 で Sass のレガシー API が削除された

3.2 Vite の HMR 要件として、.tsx ファイルでは component のみ export しないと HMR が効かない

3.3 vitest v3 では Promise に必ず await を付ける必要がある

参考リンク

次にやること(Next Actions)

  1. トップページでの API リクエスト数を削減し、API キャッシュを導入する
  2. API に依存する UI がファーストビューの表示を妨げないように改善する
  3. 画像の読み込みを最適化して、さらなるパフォーマンス向上を目指す

以上、最後までお読みいただきありがとうございます。

TAIANテックブログ

Discussion