传统
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>