传统

layout.blade

@yield('content')

继承调用

@extends('base.layout')
@section('content')
@endsection

这样实现了继承块

組件

创建组件

php artisan make:component Alert

layout.blade

我是扩展
<main>
{{ $slot }}
</main>

在 AppServiceProvider.php boot添加组件

Blade::component('base.layout','layout');

继承调用

<x-layout>
我是内容
</x-layout>

继承覆盖

父:

<div class="container">
@yield('content')
</div>

@section('footer')
我是夫页脚
@show

子:

@extends('base.layout')

@section('title', 'Page Title')

@section('content')
<p>hello</p>
@endsection


@section('footer')

<p>子footer</p>
@endsection

插槽

组件:

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

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

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

使用:

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

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