LaravelのInertia+Vueの組み合わせでフロントエンド的な画面を作成する【応用編】
LivewireとInertiaによるLaravelのフロントエンド的画面作成入門 第4回
PHPフレームワークのデファクトスタンダードの地位を確立したといえるLaravelには、フロントエンド開発的な画面の作成を標準でサポートしています。本連載では、その際に利用するLivewireとInertiaによるVueの利用方法を紹介しています。前回は、InertiaとVueの組合せを使って、Inertiaの使い方の基本を紹介しました。最終回である今回は、Inertiaにおける画面遷移の方法とフォームの扱い方を紹介します。
Inertiaによる画面遷移
本連載は、LaravelのLivewireとInertiaを利用して、フロントエンド的な画面作成方法を紹介しています。最終回である今回は、Inertiaによる画面遷移から話を始めていきます。本連載のサンプルデータは、GitHubから参照できます。
アクションメソッドを省略できるinertia()
前回のリスト5で作成したカクテルリスト画面には、以下のコードの[カクテルの追加はこちら]というリンクがあります(前回のリスト5の(13))。
<a href="#">カクテルの追加はこちら</a> // (13)
このリンクをクリックすると、図1のカクテル追加画面が表示されるとします。この画面は、第2回の図3と同様の画面であり、その仕組みも第2回と同様です。
前回のInertiaの利用手順で紹介したように、このカクテル追加画面を表示させる基本的なコーディングは、Bladeを利用したものと変わりません。
まずは、コントローラクラスにアクションメソッドを用意し、ルーティング登録をする必要があります。ただし、単に画面を表示させる場合は、アクションメソッド内の処理内容は以下の1行のみ、すなわち単なるコンポーネントへの処理移管コードのみとなります。
なお、カクテル追加画面のコンポーネントをCocktailAdd.vueとしています。
return Inertia::render("cocktail/CocktailAdd");
この場合、アクションメソッドの実装を省略できるルーティング登録方法があり、リスト1のコードとなります。
Route::inertia("/showCocktailAdd", "cocktail/CocktailAdd");
Routeクラスのget()メソッドの代わりに、inertia()メソッドを利用し、第2引数として表示させるコンポーネントを指定します。これだけで、第1引数のパスにアクセスした場合に、指定コンポーネントが表示されるようになります。
リンク設定はLinkコンポーネントを利用
これでルーティングの設定ができたので、リスト1のパスである/showCocktailAddを、前回のリスト5の(13)のhref属性に指定すれば、図1のカクテル追加画面が表示されます。
ただしこの方法、すなわち通常のaタグによるリンクでは、画面全体が再レンダリングされる問題があります(図2)。これはaタグの性質を考えると当然ですが、効率が悪く、フロントエンド的な画面遷移ではありません。
その問題を解決する手段として、InertiaにはLinkコンポーネントが用意されています。これを利用し、カクテル追加画面を表示させるリンクコードは、リスト2のようにします。こうすることで、図3のように、必要な部分だけがレンダリングされるようになります。図3でいえば赤色の部分、すなわちidがappのdivタグ内だけがJavaScriptによってレンダリングされるようになり、シングルページアプリケーションのような画面遷移が実現できるようになります。
: <p> <Link href="/showCocktailAdd">カクテルの追加はこちら</Link> </p> :
この記事は参考になりましたか?
- LivewireとInertiaによるLaravelのフロントエンド的画面作成入門連載記事一覧
-
- LaravelのInertia+Vueの組み合わせでフロントエンド的な画面を作成する【応用...
- LaravelのInertia+Vueの組み合わせでフロントエンド的な画面を作成する【基本...
- Livewireを使ってフロントエンド的な画面を作成する
- この記事の著者
-
WINGSプロジェクト 齊藤 新三(サイトウ シンゾウ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。Web系製作会社のシステム部門、SI会社を経てフリーランスとして独立。屋号はSarva(サルヴァ)。HAL大阪の非常勤講師を兼務。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
