LaravelでReactコンポーネントを組み込む方法完全ガイド!JSX対応でフロントエンド連携を学ぼう
生徒
「LaravelでReactって使えるんですか?」
先生
「使えます。LaravelではReactを組み込んで動かすことができます。」
生徒
「Reactって何ですか?」
先生
「画面の見た目や動きを作るためのJavaScriptの仕組みです。部品のように画面を作れます。」
生徒
「どうやってLaravelに組み込むんですか?」
先生
「順番に設定すれば大丈夫です。初心者でも分かるように説明します。」
1. LaravelでReactを使うとは?
LaravelとReactを組み合わせることで、サーバー側と画面表示を分けて開発できます。Laravelはデータ処理やAPIを担当し、Reactは画面の表示を担当します。このような役割分担をすることで、効率よく開発ができるようになります。
Reactはコンポーネントという小さな部品を組み合わせて画面を作る仕組みです。例えば、ボタンや入力フォームなどを部品として作り、それを組み合わせることでページを作ります。
2. JSXとは?初心者向けに解説
JSXとは、JavaScriptの中にHTMLのようなコードを書ける仕組みです。見た目はHTMLに似ていますが、実際にはJavaScriptとして動きます。
例えば、通常のJavaScriptでは複雑になりがちな画面構築も、JSXを使うことで直感的に書けるようになります。
const element = <h1>こんにちは</h1>;
このようにHTMLのように書けるため、初心者でも理解しやすいのが特徴です。
3. LaravelでReactを使う準備
まずはReactを使うための環境を整えます。LaravelではViteというツールを使ってフロントエンドを管理します。
npm install react react-dom
次にReact用のプラグインをインストールします。
npm install @vitejs/plugin-react
これでReactを使う準備が整います。
4. Viteの設定でJSXを有効にする
Viteの設定ファイルを編集して、Reactが使えるようにします。設定ファイルはvite.config.jsです。
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import react from '@vitejs/plugin-react';
export default defineConfig({
plugins: [
laravel(['resources/js/app.jsx']),
react(),
],
});
この設定により、JSXファイルが読み込まれるようになります。
5. Reactコンポーネントを作成する
次にReactのコンポーネントを作ります。resourcesフォルダの中に作成します。
function Hello() {
return <h2>Reactコンポーネントです</h2>;
}
export default Hello;
このコードは、画面に文字を表示するシンプルなコンポーネントです。
6. ReactをLaravelの画面に表示する
作成したコンポーネントをLaravelの画面に表示します。まず、Reactを起動するコードを書きます。
import React from 'react';
import ReactDOM from 'react-dom/client';
import Hello from './Hello';
ReactDOM.createRoot(document.getElementById('app')).render(
<Hello />
);
次にBladeファイルに表示する場所を用意します。
<div id="app"></div>
@vite('resources/js/app.jsx')
これでLaravelの画面にReactコンポーネントが表示されます。
7. JSXで動きをつける方法
Reactの強みは、動きのある画面を簡単に作れることです。例えば、ボタンを押したときに文字を変えることもできます。
import { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>回数: {count}</p>
<button onClick={() => setCount(count + 1)}>
クリック
</button>
</div>
);
}
export default Counter;
このように状態を管理することで、画面の内容を動的に変更できます。
8. LaravelとReactを組み合わせるメリット
LaravelとReactを組み合わせることで、効率的で使いやすいアプリケーションを作ることができます。Laravelはデータ処理や認証を担当し、Reactは画面の操作性を向上させます。
また、コンポーネント単位で開発できるため、コードの再利用がしやすくなります。初心者でも小さな部品から作ることで、段階的に理解できます。
さらに、JSXによって見た目と処理を一緒に書けるため、コードの見通しがよくなり、バグも減らすことができます。