ReactをLaravelと統合する方法は?
Laravelは、Laravelをインストールし、データベースの構成、APIルートの作成、コントローラーからJSONの返却を行い、オプションでLaravel Sanctumを使用して認証を使用して、APIバックエンドとしてLaravelを設定します。 2。個別に提供されるスタンドアロンReactスパを選択するか、inertia.jsを使用してLaravel統合を締めます。慣性により、ReactコンポーネントはLaravelのルーティングおよびセッションシステム内で動作することができます。 3.慣性を使用する場合は、必要なパッケージをインストールし、Viteを構成し、ルートリアクションコンポーネントを作成し、リソース/js/ページ/にReactページを配置し、プロップとして渡されたデータを使用してルートから慣性応答を返します。 4.分離されたセットアップの場合は、Laravelを実行して別々のドメインで反応し、AxiosまたはFetchを使用してReactからLaravel APIを呼び出し、Corsと認証を適切に処理します。 5.ベストプラクティスには、より高速なビルドにViteを使用すること、機能による反応コンポーネントの整理、Laravel APIリソースによるAPI応答のフォーマット、CORSと認証のテストが含まれます。慣性とスタンドアロンのReactアプリの選択は、プロジェクトの複雑さとチームの好みに依存します。慣性は、フルスタックの統合とスタンドアロンスパスを単純化し、最新のLaravel-Reactアプリケーションの有効なアプローチの両方を提供します。
ReactをLaravelと統合することで、ルーティング、認証、APIなどのLaravelの堅牢なバックエンド機能を活用しながら、強力で動的なフロントエンドを構築できます。現代のLaravelプロジェクトで効果的に行う方法は次のとおりです。

1. Laravelを設定し、APIを作成します
まず、LaravelがバックエンドAPIとして機能するように設定されていることを確認してください。
-
Composerを介してLaravelをインストールします。
作曲家Create-Project Laravel/Laravel Your-Project-Name
データベース設定で
.env
ファイルを構成し、移行を実行します。PHPの職人が移行します
routes/api.php
でAPIルートを作成します:ルート:: get( '/posts'、[postcontroller :: class、 'index']);
コントローラーがJSON(APIリソースまたは雄弁なコレクション)を返すようにしてください。
パブリック関数インデックス() { return post :: all(); }
React Frontendの認証が必要な場合は、Laravel Sanctumを使用してください。
2。反応の提供方法を選択します:Spa vs Inertia.js
2つの主なアプローチがあります。
オプションA:スタンドアロンReactアプリ(SPA)
- Viteを使用して個別に反応するか、Reactアプリを作成します。
- 別のドメイン(
http://localhost:3000
)または静的ファイルから提供します。 - 開発中にLaravelをプロキシAPI呼び出しに構成します(オプション)。
compantive多くのインタラクティブコンポーネントを備えた大きくて複雑なフロントエンドに最適です。
オプションB:inertia.jsを使用します(簡単にするために推奨)
Inertiaでは、Laravelのルーティングおよびセッションシステム内にとどまっている間、Reactコンポーネントを使用できます。
慣性をインストールします:
作曲家には、inertiajs/inertia-laravelが必要です
フロントエンドの足場を設定します:
npmインストール @inertiajs/React React React-dom @vitejs/Plugin-React
vite.config.js
を更新:'vite'から{defenconfig}をインポートします。 '@vitejs/プラグインの反応'からのImport React; 'laravel-vite-plugin'からlaravelをインポートします。 デフォルトのデフォルトdefineconfigをエクスポートする({ プラグイン:[ laravel({ 入力: 'resources/js/app.jsx'、 更新:本当、 })、 React()、 ]、、 });
Root Reactコンポーネント(
resources/js/app.jsx
)を作成します。「React-Dom/Client」から{Createroot}をインポートします。 '@inertiajs/React'から{createInertiaApp}をインポートします。 CreateInertiaApp({ Resolve:name => require( `./pages/$ {name}`)、 セットアップ({el、app、props}){ createroot(el).render(<app {... props} />); }、 タイトル:title => `私のアプリ| $ {title} `、 });
Laravelルートからの慣性応答を返す:
慣性\ inertiaを使用します。 ルート:: get( '/'、function(){ return inertia :: render( 'wamelt'、['message' => 'hello laravel!']); });
laravel LaravelハンドリングルーティングとUIに電力を供給する反応が必要なフルスタックアプリに最適です。
3. Laravel内の反応コンポーネントを構築します
慣性またはバンドルされたセットアップで:
resources/js/Pages/
に反応コンポーネントを配置します。例:
resources/js/Pages/Posts/Index.jsx
'@inertiajs/React'から{usepage}をimport; デフォルト機能postindex({post}){ const {props} = usePage(); 戻る ( <div> <h1>投稿</h1> {propss.posts.map(post =>( <div key = {post.id}> {post.title} </div> ))} </div> ); }
Laravelコントローラーからのデータを渡す:
復活:: render( 'posts/index'、[ 'posts' => post :: all() ]);
?動的なデータ(検索、ページネーションなど)については、慣性訪問またはaxiosを使用して、Laravel APIルートにヒットします。
4。laravelをフロントエンドとしてAPI反応として使用します(分離)
完全に個別のフロントエンドを好む場合:
laravelは
api.yourapp.test
(バックエンドのみ)で実行し続けます。localhost:3000
でReactアプリ(Vite、Next.jsなどを使用)をビルドします。AxiosまたはFetchを介してLaravel APIを呼び出します。
effect(()=> { axios.get( 'http://api.yourapp.test/api/posts') .then(res => setposts(res.data)) .catch(err => console.error(err)); }、[]);
CORSのハンドル:
fruitcake/laravel-cors
をインストールするか、Laravel SanctumのSPA機能を使用します。作曲家には、フルーツケーキ/ララヴェルcorsが必要です
overtaseatlesteatlesteatsステートレスではないにしても、認証(Sanctum/sanctum/sanctum/socialite)およびCSRFを管理することを忘れないでください。
最終的なヒント
- WebpackでViteを使用します(ビルドが高速)。
- ページまたは機能ごとに整理されたReactコンポーネントを保持します。
- Laravel APIリソースを使用して、JSON出力をきれいにフォーマットします。
- Corsと認証を早期にテストします。
基本的に、慣性を介してしっかりと反応するか、フロントエンドスパとして分離することができます。慣性は複雑さを軽減し、Laravelエコシステムにあなたを維持しますが、スタンドアロンのReactアプリはフロントエンドの柔軟性を高めます。チームとプロジェクトのニーズに基づいて選択します。
以上がReactをLaravelと統合する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

紹介テーブルを作成して、紹介、紹介、推奨コード、使用時間を含む推奨関係を記録します。 2.推奨データを管理するために、ユーザーモデルのBelongStomanyとHasmanyの関係を定義します。 3.登録時に一意の推奨コードを生成します(モデルイベントを通じて実装できます)。 4.登録中にパラメーターをクエリすることにより、推奨コードをキャプチャし、検証後に推奨関係を確立し、自己称賛を防ぎます。 5.推奨されるユーザーが指定された動作(サブスクリプション順序)を完了した場合、報酬メカニズムをトリガーします。 6.共有可能な推奨リンクを生成し、Laravel Signature URLを使用してセキュリティを強化します。 7.推奨事項の総数や変換された番号など、ダッシュボードに推奨統計を表示します。データベースの制約、セッション、またはCookieが持続することを確認する必要があります。

chooseafeatureflagstrategysuchasconfigベース、データベース駆動型、orhird-partytoolslikeflagsmith.2.setupadatabase-drivensystemby-drivensystemmigrationforafeature_flagstablewithname、evanabled、andrulesfields、thenrunthigration.3

新しいLaravelプロジェクトを作成し、サービスを開始します。 2。モデル、移行、コントローラーを生成し、移行を実行します。 3.ルート/api.phpのRESTFULルートを定義します。 4.ポストコントローラーに追加、削除、変更、クエリメソッドを実装し、JSON応答を返します。 5. PostmanまたはCurlを使用して、API関数をテストします。 6.オプションで、Sanctumを介してAPI認証を追加します。最後に、実用的なアプリケーションに適した、完全かつ拡張可能なLaravelRestapiの明確な構造を取得します。

リポジトリパターンは、データアクセスロジックからビジネスロジックを切り離すために使用される設計パターンです。 1.インターフェイス(契約)を介してデータアクセスメソッドを定義します。 2。特定の操作は、リポジトリクラスによって実装されます。 3.コントローラーは、依存関係噴射を介してインターフェイスを使用し、データソースに直接接触しません。 4.利点には、きちんとしたコード、強力なテスト可能性、簡単なメンテナンス、チームのコラボレーションが含まれます。 5。中規模および大規模なプロジェクトに適用されると、小規模プロジェクトはモデルを直接使用できます。

Eloquentormは、Laravelの組み込みオブジェクトリレーショナルマッピングシステムです。ネイティブSQLの代わりにPHP構文を介してデータベースを操作し、コードをより簡潔でメンテナンスしやすくします。 1.各データテーブルはモデルクラスに対応し、各レコードはモデルインスタンスとして存在します。 2。アクティブレコードモードを採用すると、モデルインスタンスを単独で保存または更新できます。 3。サポートバッチ割り当て、およびセキュリティを確保するために$充填可能な属性をモデルで定義する必要があります。 4. 1対1、1対10、多目的などなど、強力な関係サポートを提供し、メソッド呼び出しを介して関連するデータにアクセスできます。 5。クエリを構築するために、Orderbyおよびその他のメソッドをChainedと呼ぶことができる統合クエリコンストラクター。 6。属性を取得または設定するときに数値をフォーマットできるアクセサと修飾子をサポートします。

フォームレクエストを使用して、コントローラーから複雑なフォーム検証ロジックを抽出し、コードの保守性と再利用性を向上させます。 1。作成方法:職人コマンドMakeを介してリクエストクラスを生成します。リクエスト。 2。定義ルール:ルール()メソッドでフィールド検証ロジックを設定します。 3。コントローラーの使用:このクラスをパラメーターとして直接受信し、Laravelは自動的に検証します。 4。承認判断:authorize()メソッドを介したユーザー許可を制御します。 5。動的調整ルール:リクエストコンテンツに従って異なる検証ルールを動的に返します。

Accessors andMutatorsin andlaravel'seloquentormallowyoutoformatormatulatemodelattributestributestributestributes.1.useaccessorstocustomizeattributertrieval、そのような存在するfirst_nameviagetfirstmeattribute($ valuation)

laraveLeLoquentsSubqueriesInselect、from、where、andorderbyclauses、enableing flexibledataryvalwithoutrawsql;
