Inertia は、いくつかの重要な方法で従来の Vue.js とは異なる方法でクライアント側のルーティングを処理します。
1. サーバー側レンダリング:
- Inertia は、サーバー側レンダリングを使用して Vue コンポーネントをレンダリングします。これは、最初のページの読み込みがサーバーによって処理されることを意味します。このアプローチにより、従来の Vue.js クライアント側レンダリングと比較して SEO と初期読み込み速度が向上します[2][4]。
2. 最小限の JSON プロパティ:
- サーバーが新しいルートのリクエストを受信すると、Vue コンポーネントの名前と必要な props を含む最小限の JSON 応答を送り返します。このアプローチにより、転送されるデータ量が削減され、パフォーマンスが向上します[2][4]。
3. 慣性リンク コンポーネント:
- Inertia は、クリックをインターセプトし、XHR リクエストをトリガーしてサーバーからデータを取得するカスタム `Link` コンポーネントを提供します。このコンポーネントは、ページ全体をリロードすることなく、ページ コンテンツが動的に更新されることを保証します[4]。
4. Vue Router は必要ありません:
- Inertia では、すべてのルートがサーバー側で定義され、Laravel のルーターによって処理されるため、Vue Router が不要になります。これにより、開発プロセスが簡素化され、複数のルーティング システムの管理の複雑さが軽減されます[2][4]。
5. フロントエンドとバックエンドの統合:
- Inertia は Laravel とシームレスに統合されており、開発者はフロントエンドとバックエンドの両方で同じテンプレート言語 (Vue.js) を使用できます。この統合されたアプローチにより開発が簡素化され、追加の構成の必要性が減ります[1][3]。
これらの違いを活用することで、Inertia は、Vue.js と Laravel の両方の長所を組み合わせたクライアント側ルーティングへの独自のアプローチを提供し、その結果、より効率的でスケーラブルな開発プロセスが実現します。
引用:[1] https://github.com/inertiajs/inertia/issues/905
[2] https://inertiajs.com/routing
[3] https://jetstream.laravel.com/stacks/inertia.html
[4] https://vueschool.io/articles/vuejs-tutorials/the-ultimate-guide-for-using-vue-js-with-laravel/
[5] https://laracasts.com/discuss/channels/vue/inertia-vs-vue-pinia-and-router