Scoped slots feature addition to Laravel's Blade templating engine. The package adds two new Blade directives: @scopedslot
and @endscopedslot
. Inspired by Vue's scoped slots feature.
composer require konradkalemba/blade-components-scoped-slots
index.blade.php
@component('components.list', ['objects' => $objects])
@scopedslot('item', ($object))
// It is also possible to pass outside variable to the scoped slot
// by using the third parameter: @scopedslot('item', ($object), ($variable))
<li>
{{ $object->name }}
@if($object->isEditable)
<a href="https://github.com/konradkalemba/blade-components-scoped-slots/blob/master/{{ route('objects.edit', $object->id) }}">{{ __('Edit') }}</a>
@endif
</li>
@endscopedslot
@endcomponent
components/list.blade.php
<ul>
@foreach($objects as $object)
{{ $item($object) }}
@endforeach
</ul>