Через стеки: макет оголошує місце, сторінки й компоненти додають туди вміст.
{{-- layouts/app.blade.php --}}
<head>
@vite(['resources/css/app.css', 'resources/js/app.js'])
@stack('scripts')
</head>
{{-- сторінка зі графіком --}}
@push('scripts')
<script src="https://cdn.example.com/chart.js" defer></script>
@endpush
Корисні варіанти:
@prepend- додати на початок стека;@pushOnce('scripts')- додати лише раз, навіть якщо компонент з цим скриптом стоїть на сторінці десять разів;@once ... @endonce- те саме для довільного блоку;@pushIf($condition, 'scripts')- за умовою.
Чим це краще за @section: секцію перезаписує дочірній шаблон, а в стек можуть додавати кілька незалежних місць - сторінка, кожен компонент, вкладений шаблон.
Порядок: стек виводиться там, де стоїть @stack, а вміст збирається з усіх шаблонів, що рендеряться для сторінки. Компонент, відрендерений пізніше за @stack (наприклад, у Livewire-оновленні), уже не потрапить у head - для динамічних частин скрипти підключають інакше.