extends,includes,yield,section,这些blade模板里面的标签分别怎么用?extends,includes有什么区别?yield,section有什么区别?

在Laravel框架中,Blade模板引擎提供了一种非常优雅的方式来编写视图。你提到的extendsincludes@yield@section@stop/@endsection是Blade模板中常用的指令,它们各自有不同的用途。

1. @extends@include

@extends

@extends用于指定当前视图继承自另一个视图(通常称为布局或母版视图)。这允许你定义网站或应用的基础HTML结构(如头部、导航栏和页脚),然后在不同的视图中填充内容。

用法示例

@extends('layouts.app')  
  
@section('content')  
    <!-- 页面特定内容 -->  
@endsection

@include

@include用于在当前视图中包含一个其他视图的内容。这通常用于复用页面片段,如侧边栏、导航链接等。

用法示例

<div class="sidebar">  
    @include('partials.sidebar')  
</div>

区别

  • @extends用于定义视图的继承关系,主要目的是复用整个页面的结构。

  • @include用于在当前视图中包含其他视图的片段,主要目的是复用页面上的小块内容。

2. @yield@section/@endsection

@yield

@yield通常与@extends一起使用,在布局文件中指定一个或多个内容区域,这些区域将被子视图中的相应@section填充。但是,直接在你的子视图中使用@yield是不常见的,因为@yield更多地是在布局文件中用来定义插槽(slot)。

布局文件中使用@yield示例

<!DOCTYPE html>  
<html>  
<head>  
    <title>App Name - @yield('title')</title>  
</head>  
<body>  
    @yield('content')  
</body>  
</html>

@section@endsection

@section@endsection用于在子视图中定义要传递到布局视图的内容块。这些内容块将填充布局文件中通过@yield指定的插槽。

子视图中使用@section@endsection示例

@extends('layouts.app')  
  
@section('title', '页面标题')  
  
@section('content')  
    <!-- 页面特定内容 -->  
@endsection

注意@yield本身不直接在子视图中使用,而是在布局文件中定义内容插槽。@section@endsection在子视图中定义要填充到这些插槽的内容。

总结

  • @extends@include 分别用于视图的继承和内容的包含。

  • @yield 在布局文件中定义内容插槽,而@section@endsection 在子视图中定义要填充到这些插槽的内容。

  • 正确的拼写和理解这些指令的用途对于高效地使用Blade模板引擎至关重要。

所有用户都可以去薅羊毛,192元充值200元话费!先到先得!导航栏话费充值,正规可靠,快充慢充自由选择。
欧阳逸资源站 » extends,includes,yield,section,这些blade模板里面的标签分别怎么用?extends,includes有什么区别?yield,section有什么区别?

发表评论