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를 포함하는 경우 블레이드 템플릿이 렌더링되는 순서를 이해하는 것이 중요합니다.
Laravel에서는 레이아웃이 먼저 처리되고 개별 뷰와 부분 뷰가 그 뒤를 따릅니다. 렌더링 과정은 다음과 같습니다.
이 순서로 인해 하위 뷰 콘텐츠를 기반으로 레이아웃에 JavaScript 파일을 조건부로 추가하려는 경우 표준 변수 검사가 작동하지 않습니다. 페이지별 JavaScript를 보다 유연하게 처리하려면 Blade의 @stack 및 @push 지시어를 사용해야 합니다.
특정 뷰에 JavaScript를 추가하기 위해 Laravel의 @stack 및 @push 지시문은 레이아웃에 스크립트를 조건부로 포함할 수 있는 효율적인 솔루션을 제공합니다.
레이아웃에서 페이지별 스크립트용 스택을 생성하세요.
import './custom.js';
JavaScript가 필요한 특정 블레이드 파일에서 스크립트 스택으로 푸시합니다.
@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>
이 부분이 뷰에 포함되면 부분 특정.js가 레이아웃 파일의 스크립트 스택에 추가됩니다.
import './custom.js';
여기서는 블레이드 파일의 위치에 관계없이 비판적.js가 non_critical.js보다 먼저 로드됩니다.
JavaScript가 포함될 때 더 세밀하게 제어해야 하는 경우 Laravel의 조건문을 사용하면 레이아웃에서 직접 경로 기반 또는 변수 기반 논리를 사용할 수 있습니다.
레이아웃에서 직접 경로 확인을 사용하여 현재 경로를 기반으로 JavaScript를 포함할 수 있습니다.
@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>
이 접근 방식을 사용하면 특정 변수나 경로를 기반으로 JavaScript 로드를 제어할 수 있어 사용자 정의 페이지 설정에 유연성을 제공할 수 있습니다.
논의된 방법에 대한 간략한 개요는 다음과 같습니다.
이러한 옵션을 사용하면 JavaScript 로딩을 정확하게 제어하여 Laravel 11 프로젝트를 효율적이고 유지 관리하기 쉽게 만들 수 있습니다.
위 내용은 Laravel에 JavaScript를 포함하는 방법 모든 시나리오에 대한 단계별 가이드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!