PHP, Linux

Laravel Vue.js導入

 

npm, yarnのインストール

sudo yum install -y nodejs gcc-c++ make
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install -y yarn

 

 

Laravelにはpackage.jsonとして、npm installでvueがインストールされるようになっています。

$ cat ./laravel/package.json


{
    "private": true,
    "scripts": {
        "dev": "npm run development",
        "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
        "watch": "npm run development -- --watch",
        "watch-poll": "npm run watch -- --watch-poll",
        "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
        "prod": "npm run production",
        "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
    },
    "devDependencies": {
        "axios": "^0.18",
        "bootstrap": "^4.1.0",
        "cross-env": "^5.1",
        "jquery": "^3.2",
        "laravel-mix": "^4.0.7",
        "lodash": "^4.17.5",
        "popper.js": "^1.12",
        "resolve-url-loader": "^2.3.1",
        "sass": "^1.15.2",
        "sass-loader": "^7.1.0",
        "vue": "^2.5.17"
    }
}

 

npmコマンドでvue, その他をインストール

$ cd ./laravel/
$ npm install

 

npm起動します。

$ npm run dev

 

app.jsの確認

$ ls $APP_PATH/resources/js
app.js  bootstrap.js  components

生成されています。

 

 

welcome.blade.phpにvueコンポーネントを表示させようとします。

$ vi $APP_PATH/resources/views/welcome.blade.php


<!doctype html>
<html lang="{{ app()->getLocale() }}">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>Laravel</title>

        <link href="{{ mix('css/app.css') }}" rel="stylesheet" type="text/css">
    </head>
    <body>
        <!-- コンポーネントの配置 -->
        <div id="app">
            <example-component></example-component>
        </div>
    <script src="{{ mix('js/app.js') }}"></script>
    </body>
</html>

 

<div id="app">
    <コンポーネント名></コンポーネント名>
</div>

 

スクリプトの読み込みはこれ

<script src="{{ mix('js/app.js') }}"></script>

これでjs/app.jsを読み込みます。

 

 

ExampleComponent.vueが作成されているので確認

$ cat $APP_PATH/resources/js/components/ExampleComponent.vue


<template>
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header">Example Component</div>

                    <div class="card-body">
                        I'm an example component.
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>

<script>
    export default {
        mounted() {
            console.log('Component mounted.')
        }
    }
</script>

 

 

ルーティング設定

$ vi $APP_PATH/routes/web.php


// Vueテスト
Route::get('/test', function () {
    return view('welcome');
});

 

http://IPアドレス/test

 

 

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)