@endpush @push(\\'scripts\\') @endpush
이 경우 @push가 선언된 순서대로 스택에 콘텐츠를 추가하기 때문에 script1.js가 script2.js보다 먼저 로드됩니다.
@push(\\'scripts\\') @vite(\\'resources/js/partial-specific.js\\') @endpush
이 부분이 뷰에 포함되면 부분 특정.js가 레이아웃 파일의 스크립트 스택에 추가됩니다.
@prepend(\\'scripts\\') @endprepend @push(\\'scripts\\') @endpush
여기서 중요한.js는 블레이드 파일의 위치에 관계없이 non_tical.js보다 먼저 로드됩니다.
JavaScript가 포함될 때 더 세밀한 제어가 필요한 경우 Laravel의 조건문을 사용하면 레이아웃에서 직접 경로 기반 또는 변수 기반 논리를 사용할 수 있습니다.
레이아웃에서 직접 경로 확인을 사용하여 현재 경로를 기반으로 JavaScript를 포함할 수 있습니다.
@if (request()->routeIs(\\'some.route.name\\')) @vite(\\'resources/js/custom.js\\')@endif
변수를 기반으로 스크립트를 조건부로 로드하려면 컨트롤러 또는 하위 보기에서 플래그를 설정한 다음 레이아웃에서 이를 확인할 수 있습니다.
return view(\\'your.view\\', [\\'loadCustomJS\\' => true]);
@if (!empty($loadCustomJS)) @vite(\\'resources/js/custom.js\\') @endif
이 접근 방식을 사용하면 특정 변수나 경로를 기반으로 JavaScript 로드를 제어할 수 있어 사용자 정의 페이지 설정에 유연성을 제공할 수 있습니다.
논의된 방법에 대한 간략한 개요는 다음과 같습니다.
이러한 옵션을 사용하면 JavaScript 로딩을 정확하게 제어하여 Laravel 11 프로젝트를 효율적이고 유지 관리하기 쉽게 만들 수 있습니다.
","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.config.js가 @vite 가져오기를 올바르게 처리하도록 설정되어 있는지 확인하세요. 기본적으로 다음과 같아야 합니다.
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')
이 설정을 통해 JavaScript는 Laravel 11 프로젝트의 사이트 전체에서 사용할 수 있습니다.
특정 보기에 조건부로 JavaScript를 포함하는 경우 블레이드 템플릿이 렌더링되는 순서를 이해하는 것이 중요합니다.
Laravel에서는 레이아웃이 먼저 처리되고, 그 다음에는 개별 뷰와 부분 뷰가 처리됩니다. 렌더링 프로세스는 다음과 같습니다.
이 순서로 인해 하위 보기 콘텐츠를 기반으로 레이아웃에 JavaScript 파일을 조건부로 추가하려는 경우 표준 변수 검사가 작동하지 않습니다. 페이지별 JavaScript를 보다 유연하게 처리하려면 Blade의 @stack 및 @push 지시문을 사용해야 합니다.
특정 뷰에 JavaScript를 추가하기 위해 Laravel의 @stack 및 @push 지시문은 레이아웃에 스크립트를 조건부로 포함할 수 있는 효율적인 솔루션을 제공합니다.
레이아웃에서 페이지별 스크립트에 대한 스택을 생성합니다.
My Laravel App @vite('resources/js/app.js') @stack('scripts') @yield('content')
JavaScript가 필요한 특정 블레이드 파일에서 스크립트 스택으로 푸시합니다.
@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
이 부분이 뷰에 포함되면 부분 특정.js가 레이아웃 파일의 스크립트 스택에 추가됩니다.
@prepend('scripts') @endprepend @push('scripts') @endpush
여기서 중요한.js는 블레이드 파일의 위치에 관계없이 non_tical.js보다 먼저 로드됩니다.
JavaScript가 포함될 때 더 세밀한 제어가 필요한 경우 Laravel의 조건문을 사용하면 레이아웃에서 직접 경로 기반 또는 변수 기반 논리를 사용할 수 있습니다.
레이아웃에서 직접 경로 확인을 사용하여 현재 경로를 기반으로 JavaScript를 포함할 수 있습니다.
@if (request()->routeIs('some.route.name')) @vite('resources/js/custom.js') @endif
변수를 기반으로 스크립트를 조건부로 로드하려면 컨트롤러 또는 하위 보기에서 플래그를 설정한 다음 레이아웃에서 이를 확인할 수 있습니다.
return view('your.view', ['loadCustomJS' => true]);
@if (!empty($loadCustomJS)) @vite('resources/js/custom.js') @endif
이 접근 방식을 사용하면 특정 변수나 경로를 기반으로 JavaScript 로드를 제어할 수 있어 사용자 정의 페이지 설정에 유연성을 제공할 수 있습니다.
논의된 방법에 대한 간략한 개요는 다음과 같습니다.
이러한 옵션을 사용하면 JavaScript 로딩을 정확하게 제어하여 Laravel 11 프로젝트를 효율적이고 유지 관리하기 쉽게 만들 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3