Laravel・Vue.jsのRoute::viewに関して

バックエンドがPHPでフレームワークをLaravelを使用しており、フロントでVue.jsを使用している現場に参画しているのですが、SPA(シングル・アプリケーション・アプリ)についていまいち理解できておらず調べた中で学んだRoute::viewでのルーティングに関してまとめてみました。

Laravelではweb.phpにファイルにルーティングとしてRoute::getやRoute::resourceなどの記述をすると思うのですが、

Route::view('/{any}', 'index')->where('any', '.*');

上記のようにコードを記述することで、指定されたURIパターンに対してビューを返すルートを定義しています。/{any}は、どんなURIも受け入れることを意味します。'index'は、ビューの名前を指定しています。つまり、どんなURIにアクセスしても、index.blade.phpという名前のビューファイルが表示されます。
->where('any', '.*'): これは、anyというパラメータが正規表現.*(任意の文字列)に一致するように制約を追加しています。つまり、URIのパラメータanyはどんな文字列でも受け入れるようになります。

このコードの目的は、どのようなURIにも同じビューを表示させることです。これにより、クライアントサイドのルーティングを使用するために、特にSPAの場合に便利です。

LaravelとVue.jsでSPAを作成しようと考えている方の一助となれば幸いです。


この記事が気に入ったらサポートをしてみませんか?