3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Laravel + Vue.jsのかんたん実装

Last updated at Posted at 2020-05-31

laravel上でVuejsを実装は、大まかに3段階です。

  1. resources/js/components にvueデータを作成。
  2. resources/js/app.jsにvueコンポーネントを定義。
  3. app.jsに定義したvueコンポーネントを resources/views/*.blade.phpにマークアップ。
スクリーンショット 2020-05-31 23.45.19.png

ExampleComponent.vueを表示してみましょう!
app.jsを以下のように設定します。

resources/js/app.js

require('./bootstrap');

window.Vue = require('vue');

Vue.component('example-component', require('./components/ExampleComponent.vue').default);

const app = new Vue({
    el: '#app',
});

デフォルトのwelcome.blade.phpに記述します。

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>ExampleComponent</title>
        <link rel="stylesheet" href="{{ asset('css/app.css') }}">
    </head>
    <body>
        <div id="app">
            <example-component></example-component>
        </div>
        <script src="{{ asset('js/app.js') }}"></script>
    </body>
</html>

vueファイルを記述、変更したらターミナルでコンパイルをします。

#コンパイル
npm run dev
#サーバーを立ち上げて確認
php artisan serve

表示されました!
スクリーンショット 2020-06-01 0.08.10.png

新しくVueを作成してみましょう。

  1. vueファイルを作成します。
スクリーンショット 2020-06-01 0.12.15.png
resources/js/components/LaravelVue.vue
<template>
  <div>
    <h1>LaravelでVueを実装</h1>
    <p>Good!!</p>
  </div>
</template>
  1. resources/js/app.jsにvueコンポーネントを定義します。
resources/js/app.js
require('./bootstrap');

window.Vue = require('vue');

Vue.component('example-component', require('./components/ExampleComponent.vue').default);
Vue.component('laravelvue', require('./components/LaravelVue.vue').default);

const app = new Vue({
    el: '#app',
});
  1. app.jsに定義したvueコンポーネントを resources/views/welcome.blade.phpにマークアップ。

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>laravelvue</title>
        <link rel="stylesheet" href="{{ asset('css/app.css') }}">
    </head>
    <body>
        <div id="app">
            <laravelvue></laravelvue>
        </div>
        <script src="{{ asset('js/app.js') }}"></script>
    </body>
</html>

コンパイルのたびにnpm run devするのは、面倒くさいので
vueファイルの記述が変更されるたびに自動でコンパイルしてくれるnpm run watch
を実行します。

#コンパイル
npm run watch

command + Tで新しくタブを作ってサーバーを立ち上げます。

#サーバーを立ち上げて確認
php artisan serve

表示されました!
スクリーンショット 2020-06-01 0.19.17.png

もう一度vueファイルの記述を変更してみましょう。

resources/js/components/LaravelVue.vue
<template>
  <div>
    <h1>LaravelでVueを実装できた!!</h1>
    <p>Yeah!!</p>
  </div>
</template>

npm run watchで監視されているので、vueファイルの記述に変更があると自動的にコンパイルをしてくれます。
ブラウザを更新してみましょう!
スクリーンショット 2020-06-01 0.32.47.png
更新されています。

かんたんでは、ありますが少しでも参考になれば幸いです。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?