composer でプロジェクト名「laravel_app」を作成します。
$ composer create-project laravel/laravel laravel_app
Laravel のバージョンを確認しておきます。
Laravel Framework 7.12.0
laravel_app に移動して、ComposerでLaravelのUIパッケージ laravel/ui をインストールします。
$ cd laravel_app
$ composer require laravel/ui
Reactを利用できるようにスカフォールドをインストールします。
$ php artisan ui react
//Authを利用する場合
$ php artisan ui react --auth
package.jsonに記述された内容で依存パッケージをインストールとLaravel Mixでビルドします。
$ npm install
$ npm run dev
関連ファイルの変更を監視しておきます。
$ npm run watch
これでReactがインストールされたLaravelプロジェクト作成が完了しました。
ここで Laravelサーバを起動して確認してみましょう。
おなじみの Laravel の画面は表示されましたが、この画面ではReact の動作実装されていません。
Laravel で React をインストールするとあらかじめサンプルファイルが作成されています。
resources/js/app.js には Bootstrap と Reactコンポーネント「Example」が読み込まれています。
require('./bootstrap');
require('./components/Example');
resources/js/components/Example.js には、Reactコンポーネント「Example」の中身です。
Reactでは、HTMLレンダリングにJSXを利用しますが、JavaScriptに直接HTMLタグを記述できる点で便利です。
import React from 'react';
import ReactDOM from 'react-dom';
function Example() {
return (
...JSX...
);
}
export default Example;
...
現状だと Reactコンポーネントは表示できないため、Laravelのレイアウトファイル「resources/views/welcom.blade.php」を修正します。
Laravelのmix()関数で app.jsを読み込んでいます。
また、Exampleコンポーネントを表示する場合、HTMLタグにidを指定して呼び出します。
もういちど、サーバを確認してみると今度は、Exampleコンポーネントを読み込んだ状態で表示されました。