Vite + TanStack Router - 5. 遅延ローディングのためのコード分割

アプリケーションの規模が大きくなってくると初期ロードの時間が長くなり、ユーザー体験を損ないます。

TanStack Routerではルートファイルを分割して初期ロードのファイルサイズを減らし、アプリケーション開始時間までの時間を短くすることができます。

.lazy.tsx ファイルを作ることで手動でコード分割の設定もできますが、自動コード分割機能を使うのが楽です。

自動コード分割は、ファイルベースルーティング+対応のバンドラーの環境で使えます。

対応バンドラーは現在 Vite、Rspack/Rsbuild、webpack、esbuild の4つです

自動コード分割の有効化

vite.config.ts
import { defineConfig } from 'vite'
import viteReact from '@vitejs/plugin-react'
import { TanStackRouterVite } from '@tanstack/router-plugin/vite'
export default defineConfig({
plugins: [
TanStackRouterVite({
// ...
autoCodeSplitting: true,
}),
viteReact(), // Make sure to add this plugin after the TanStack Router Bundler plugin
],
})

これだけでコード分割が有効になって遅延ローディングされるようになります。

遅延ローディングの対象

コードスプリッティング(遅延読み込み)の対象になるのは

以下の要素は遅延読み込みの対象になりません。

手動でのコード分割

手動でコードスプリッティングをする方法にも触れておきます。

  1. hoge.tsx hoge.lazy.tsx という2つのファイルを作る
  2. hoge.lazy.tsx の方では createLazyFileRoute を作り、遅延読み込みの対象(コンポーネント)を書く。

まとめ

Vite + TanStack Router - 4. パラメータの取り扱い
Vite + TanStack Router - 6. 認証付きルートの設定