阅读(2876) (10)

Laravel 8 插槽

2021-06-28 16:48:17 更新

通常,你需要通过 「slots」 向组件传递附加内容。 假设我们创建的 alert 组件具有以下标记:

<!-- /resources/views/components/alert.blade.php -->

<div class="alert alert-danger">
    {{ $slot }}
</div> 

我门可以通过向组件注入内容的方式,将内容传递到 slot :

<x-alert>
    <strong>Whoops!</strong> Something went wrong!
</x-alert> 

有时候一个组件可能需要在它内部的不同位置放置多个不同的插槽。我们来修改一下 alert 组件,使其允许注入 「title」:

<!-- /resources/views/components/alert.blade.php -->

<span class="alert-title">{{ $title }}</span>

<div class="alert alert-danger">
    {{ $slot }}
</div>

您可以使用 x-slot 标签来定义命名插槽的内容。任何没有在 x-slot 标签中的内容都将传递给 $slot 变量中的组件:

<x-alert>
    <x-slot name="title">
        Server Error
    </x-slot>

    <strong>Whoops!</strong> Something went wrong!
</x-alert>