Laravel 11 では、デフォルトのアセットバンドラーである Vite のおかげで、JavaScript をプロジェクトに簡単に追加できます。ここでは、グローバルな包含から特定のビューでの条件付き読み込みまで、あらゆる種類のシナリオに合わせて JavaScript を設定する方法を説明します。
多くの場合、Laravel アプリケーション全体に JavaScript をグローバルに含めることができます。ここでは、ユニバーサルインクルージョンのために JavaScript を整理してバンドルする方法を説明します。
Laravel 11 はアセットの管理に Vite を使用します。 JavaScript をバンドルするように設定するには:
import './custom.js';
@vite('resources/js/custom.js')
@vite インポートを正しく処理するように vite.config.js が設定されていることを確認してください。デフォルトでは、次のようになります:
import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; export default defineConfig({ plugins: [ laravel({ input: ['resources/js/app.js'], refresh: true, }), ], });
Vite でアセットをコンパイルするには:
テンプレートに JavaScript ファイルを含めるには、@vite ディレクティブを使用します。
<!DOCTYPE html> <html lang="en"> <head> <title>My Laravel App</title> @vite('resources/js/app.js') </head> <body> <!-- Content here --> </body> </html>
この設定により、Laravel 11 プロジェクトのサイト全体で JavaScript が使用できるようになります。
特定のビューに条件付きで JavaScript を含める場合、Blade テンプレートがレンダリングされる順序を理解することが重要です。
Laravel では、レイアウトが最初に処理されます、続いて個々のビューと部分が続きます。レンダリングプロセスは次のとおりです:
この順序のため、子ビューのコンテンツに基づいてレイアウトに JavaScript ファイルを条件付きで追加する場合、標準の変数チェックは機能しません。ページ固有の JavaScript をより柔軟に処理するには、Blade の @stack および @push ディレクティブを使用する必要があります。
特定のビューに JavaScript を追加するには、Laravel の @stack ディレクティブと @push ディレクティブが効率的なソリューションを提供し、条件付きでレイアウトにスクリプトを含めることができます。
レイアウトで、ページ固有のスクリプトのスタックを作成します。
import './custom.js';
JavaScript を必要とする特定の Blade ファイルで、スクリプト スタックにプッシュします。
@vite('resources/js/custom.js')
この設定では、custom.js は、その特定のビューが読み込まれるときにのみ含まれます。このメソッドは、Laravel のレンダリング順序で動作するクリーンなソリューションを提供し、JavaScript ファイルが必要に応じて条件付きで確実に含まれるようにします。
ブレード ビューでの @push ステートメントの配置は、主に読みやすさと実行順序に影響します。 @push を効果的に使用する方法は次のとおりです:
import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; export default defineConfig({ plugins: [ laravel({ input: ['resources/js/app.js'], refresh: true, }), ], });
<!DOCTYPE html> <html lang="en"> <head> <title>My Laravel App</title> @vite('resources/js/app.js') </head> <body> <!-- Content here --> </body> </html>
この場合、@push が宣言された順序でコンテンツをスタックに追加するため、script1.js は script2.js よりも前にロードされます。
<!DOCTYPE html> <html lang="en"> <head> <title>My Laravel App</title> @vite('resources/js/app.js') @stack('scripts') <!-- Define a stack for additional scripts --> </head> <body> @yield('content') </body> </html>
このパーシャルがビューに含まれる場合、partial-specified.js がレイアウト ファイルのスクリプト スタックに追加されます。
import './custom.js';
ここでは、Blade ファイル内の配置に関係なく、critical.js が non_critical.js よりも先に読み込まれます。
ルートに基づいて条件付きで含める
@vite('resources/js/custom.js')
import { defineConfig } from 'vite'; import laravel from 'laravel-vite-plugin'; export default defineConfig({ plugins: [ laravel({ input: ['resources/js/app.js'], refresh: true, }), ], });
<!DOCTYPE html> <html lang="en"> <head> <title>My Laravel App</title> @vite('resources/js/app.js') </head> <body> <!-- Content here --> </body> </html>
以上がLaravel に JavaScript を含める方法 すべてのシナリオのためのステップバイステップガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。