Inertiaは、サーバーサイド(フロントエンド)とクライアントサイド(バックエンド)をつなぐためのツールです。
わたしはLaravelとVue3を連携させたい時に使い始めましたが、すごく便利だと感じています。
本記事では、「LaravelとVueを連携させたい!」と思う方のために、Inertiaについて分かりやすく解説します。
Inertia(イナーシャ)ってなに?
まずはInertiaについて、公式サイトの説明を見ていきましょう。
次のように書かれています。
Inertia isn’t a framework, nor is it a replacement to your existing server-side or client-side frameworks. Rather, it’s designed to work with them. Think of Inertia as glue that connects the two. Inertia does this via adapters.
*参考元:Inertia公式サイト https://inertiajs.com/
Inertia=サーバーサイドとクライアントサイドをつなぐ接着剤 ということですね。2022年4月現在、サポートしているフレームワーク等は下記のとおりです。
【Inertia対応のサーバーサイド・クライアントサイド】
サーバーサイド | クライアントサイド |
---|---|
Laravel、Rails | React、Vue、Svelte |
LaravelでInertiaを使うメリット
LaravelでInertiaを使うメリットですが、先ほどお伝えしたとおり、クライアントサイドと便利に連携できることです。
わたしはLaravelとVue.js連携のために使用していますが、非常に良いな、と感じています。
Laravelでは、コントローラーで処理を行い、これをビュー側(blade.php)に受け渡してページを表示したりします。
フロント部分でVue.jsを使う場合にも、基本的には、同じような手順で処理を行えます。ただ、Webアプリ全体で使える ルート設定が使えなかったりと色々な不便があります。
Inertiaを使えば、Vue側でも、サーバーサイドのルート設定を使ったり、ヘッダを組み込んだり、ページネーションを簡単に搭載したりできます。
まさにLaravelとVueを便利につなぐための接着剤といえます。
LaravelとInertiaの歴史
便利そうなInertiaですが、あまり聞きなれないな、と感じませんか?
わたしも最初「い、、いな???なにそれ」と思いました^^;
Inertiaは一体いつから、どのような形でLaravelで使えるようになったのか。
このあたり、振り返っていきます。
Laravelは、2020年9月にLaravel8版をリリースしましたが、このとき、Jetstream版という高機能な認証機能を搭載したパッケージが出てきました。
このJetstream版には、Livewire版とInertia版の2つが用意されていました。
Livewire版は通常どおりLaravelを使いたい人向け、Inertia版は、クライアントサイドにVueを使いたい人向けです。
ただ、Livewire版は機能が多めで、やや使いにくい面もあるパッケージです。
そこで、少しあとに、より使いやすく手軽な Laravel Breeze版が出てきました。
2021年2月には、このBreeze版にも Inertiaを入れられるようになりました。
ご興味あれば、下記、Laravel公式サイトの記事です。
「LaravelのパッケージってJatstreamやらBreezeやらあるけど、どう違うの?」と思ったら、こちらの記事も参考にしてくださいね。
さいごに
以上、Inertiaについてお伝えしました。
Inertiaは Breezeインストール時にいれて、認証部分もすべてVue3で作ることができます。これは、フロント部分をすべてVue3で作成したい時に便利です。
ただ「フロント部分はblade.phpを使うけど、一部分だけVueを使いたい」という場合には、予めVueをインストールした後に、Inertiaを入れていくと良いです。
このあたりのInertiaのインストール方法などは、次の記事でご紹介しています。併せて参考にしてください。
もし記事を書いたときに知りたい!と思ったら、Twitterフォローしてくださいね♪
なお、「実際に、どんなものが作れるのかな」と思ったらら、下記のサイトをクリックしてみてください。
URL:https://quiz.createmore-prj.com/play/quiz
こちら、LaravelとInertiaとVue3 を使って開発したクイズサイトです。管理部分はBladeファイルで作り、クイズで遊べる部分だけVueで作成しています。
良かったら、LaravelとVue連携をユーザー側で味わいつつ、クイズを試してみてくださいね。