@endpush @push(\\'scripts\\') @endpush
この場合、@push が宣言された順序でコンテンツをスタックに追加するため、script1.js は script2.js よりも前にロードされます。
@push(\\'scripts\\') @vite(\\'resources/js/partial-specific.js\\') @endpush
このパーシャルがビューに含まれる場合、partial-specified.js がレイアウト ファイルのスクリプト スタックに追加されます。
@prepend(\\'scripts\\') @endprepend @push(\\'scripts\\') @endpush
ここでは、Blade ファイル内での配置に関係なく、critical.js は non_critical.js よりも前にロードされます。
@if (request()->routeIs(\\'some.route.name\\')) @vite(\\'resources/js/custom.js\\')@endif変数に基づいて条件付きで含める変数に基づいて条件付きでスクリプトを読み込むには、コントローラーまたは子ビューでフラグを設定し、レイアウトでそれを確認します:
@if (request()->routeIs(\\'some.route.name\\')) @vite(\\'resources/js/custom.js\\')@endif
@if (request()->routeIs(\\'some.route.name\\')) @vite(\\'resources/js/custom.js\\')@endifこのアプローチにより、特定の変数またはルートに基づいて JavaScript の読み込みを制御できるようになり、カスタム ページ設定に柔軟性が提供されます。
","image":"http://www.luping.net/uploads/20241111/17313105816731b3f508523.jpg","datePublished":"2024-11-11T16:46:05+08:00","dateModified":"2024-11-11T16:46:05+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
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 ディレクティブを使用します:
My Laravel App @vite('resources/js/app.js')
この設定により、Laravel 11 プロジェクトのサイト全体で JavaScript が利用できるようになります。
特定のビューに条件付きで JavaScript を含める場合、Blade テンプレートがレンダリングされる順序を理解することが重要です。
Laravel では、レイアウトが最初に処理され、続いて個々のビューと部分が処理されます。レンダリングプロセスは次のとおりです:
この順序のため、子ビューのコンテンツに基づいてレイアウトに JavaScript ファイルを条件付きで追加する場合、標準の変数チェックは機能しません。ページ固有の JavaScript をより柔軟に処理するには、Blade の @stack および @push ディレクティブを使用する必要があります。
特定のビューに JavaScript を追加するには、Laravel の @stack ディレクティブと @push ディレクティブが効率的なソリューションを提供し、条件付きでレイアウトにスクリプトを含めることができます。
レイアウトで、ページ固有のスクリプトのスタックを作成します:
My Laravel App @vite('resources/js/app.js') @stack('scripts') @yield('content')
JavaScript を必要とする特定の Blade ファイルで、スクリプト スタックにプッシュします:
@extends('layout') @section('content') @endsection @push('scripts') @vite('resources/js/custom.js') @endpush
この設定では、custom.js は、その特定のビューが読み込まれるときにのみ含まれます。このメソッドは、Laravel のレンダリング順序で動作するクリーンなソリューションを提供し、JavaScript ファイルが必要に応じて条件付きで確実に含まれるようにします。
ブレード ビューでの @push ステートメントの配置は、主に読みやすさと実行順序に影響します。 @push を効果的に使用する方法は次のとおりです:
@extends('layout') @section('content') @endsection @push('scripts') @vite('resources/js/custom.js') @endpush
@push('scripts') @endpush @push('scripts') @endpush
この場合、@push が宣言された順序でコンテンツをスタックに追加するため、script1.js は script2.js よりも前にロードされます。
@push('scripts') @vite('resources/js/partial-specific.js') @endpush
このパーシャルがビューに含まれる場合、partial-specified.js がレイアウト ファイルのスクリプト スタックに追加されます。
@prepend('scripts') @endprepend @push('scripts') @endpush
ここでは、Blade ファイル内での配置に関係なく、critical.js は non_critical.js よりも前にロードされます。
ルートに基づいて条件付きで含める
@if (request()->routeIs('some.route.name')) @vite('resources/js/custom.js') @endif変数に基づいて条件付きで含める
@if (request()->routeIs('some.route.name')) @vite('resources/js/custom.js') @endif
@if (request()->routeIs('some.route.name')) @vite('resources/js/custom.js') @endifこのアプローチにより、特定の変数またはルートに基づいて JavaScript の読み込みを制御できるようになり、カスタム ページ設定に柔軟性が提供されます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3