Laravel で Vue を利用する際の Tips/メモ
はじめに
Laravel で Vue を使うときに実施したことなどのメモ。
TL;DR
以下について簡単に整理した
- Laravel + Vue の利用方法
- Vue コンポーネントの利用方法
- 一部ページでのみ Vue を利用する方法
- Vue で Laravel の多言語化ファイルを利用する方法
目次
環境・条件
1 | $ cat /etc/os-release |
詳細
Laravel で Vue を動作させる
参考:
- LaravelからVue.jsを使う最短レシピ - Qiita
- Laravel7からVue.jsを使う最短レシピ - Qiita
- Vue.js + LaravelでシンプルなSPA構築チュートリアル:概要編 - Qiita
- Vue.js + LaravelでシンプルなSPA構築チュートリアル:Vueフロントエンド編 - Qiita
細かい設定方法は上記ページを参照。
resources/views/layouts/app.blade.php
などのレイアウトファイルを編集。
1 |
|
resources/js/app.js
などの JS ファイルを編集。
1 | // ... |
Laravel-mix の設定、webpack.mix.js
を編集。
1 | const mix = require('laravel-mix'); |
npm run watch
などを実行後、該当レイアウトファイルを利用するページにアクセスすると Hello vue & laravel
と表示されるはず。
Vue のコンポーネントを利用する
resources/js/components/xxxx.vue
を作成。(今回は MyComponent.vue
とした)
1 | <template> |
resources/js/app.js
などの JS ファイルを編集。
1 | // ... |
コンポーネントを利用したい箇所(blade
)を変更。Vue の props や v-bind も利用可能。
1 | <!-- ... --> |
上手く動作すれば以下のようなダイアログが表示されるはず。
余談: Vue ファイルの格納パス
個人的には格納パスが resources/js/components/
で良いのかは悩みどころ。
resources/js/xxxx.js
みたいな Vue とは関係ないものもあるなら、resources/js/vue/components/xxxx.vue
とか resources/vue/components/xxxx.vue
とかでも良いかも?
特定ページでだけ Vue を使いたい
特殊な要件になるが、一部だけ SPA(っぽい) 感じにしたいような場合。
resources/js/app.js
を使うと(一般的に)全てのページが対象になるので、別の JS ファイルに new Vue
を記述し、その JS ファイルを対象の blade ファイルで使うようにすると良い。
resources/js/app.js
1 | // ... |
resources/js/hoge.js
1 | import MyComponent from './components/MyComponent'; |
webpack.mix.js
1 | // ... |
hoge.js
は最後に読み込みたいため、@push
, @stack
を使う。
resources/views/.../hoge.blade.php
1 | @extends('layouts.app') |
resources/views/layouts/app.blade.php
1 |
|
Vue で Laravel の多言語化ファイルを参照
Laravel の blade ファイルで resources/lang/ja.json
の内容を参照し __('hello')
として表示していたものを、Vue 側でも同様に resources/lang/ja.json
を利用して表示したい場合。
参考: LaravelとVue.jsで多言語対応を行う – Webプログラマーきたむーの技術ブログ
kazupon/vue-i18n をインストール
1 | $ npm i vue-i18n |
resources/js/app.js
を修正、resources/lang/ja.json
を利用するように設定。
(修正ファイルや参照パスは人それぞれなので、適宜読み替え)
1 | // ... |
resources/lang/ja.json
1 | { |
xxxx.vue
では $t
で表示。
1 | <template> |
kazupon/vue-i18n の詳細な使い方(ドキュメント)は Getting started | Vue I18n を参照。
まとめ
以下について簡単に整理した
- Laravel + Vue の利用方法
- Vue コンポーネントの利用方法
- 一部ページでのみ Vue を利用する方法
- Vue で Laravel の多言語化ファイルを利用する方法
参考文献
- LaravelからVue.jsを使う最短レシピ - Qiita
- Vue.js + LaravelでシンプルなSPA構築チュートリアル:概要編 - Qiita
- Vue.js + LaravelでシンプルなSPA構築チュートリアル:Vueフロントエンド編 - Qiita
- Vue.js + LaravelでシンプルなSPA構築チュートリアル:LaravelAPI編 - Qiita
- Vue.js + LaravelでシンプルなSPA構築チュートリアル:VueとAPI結合編 - Qiita
- 【Laravel 6 & PHP 7.4 対応】Vue + Vue Router + Vuex + Laravel チュートリアル(全16回)を書きました。 - Qiita
- LaravelとVue.jsで多言語対応を行う – Webプログラマーきたむーの技術ブログ
- API認証 5.8 Laravel
関連記事
- Laravel で現在の URL 取得方法まとめ
- Chart.js(vue-chartjs) でツールチップの表示内容を変更
- Vue.js で日本語変換での誤発火を抑止しつつ Enter キーで Submit
- Vue で子コンポーネントのメソッドをコールする
- apertureless/vue-chartjs でチャートの高さ(や幅、サイズ)を変更
- Chart.js で X軸, Y軸の値をカスタマイズ
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア