laravel的blade引擎

Blade 是由Laravel提供的非常简单但功能强大的模板引擎,不同于其他流行的PHP模板引擎,Blade在视图中并不约束使用PHP原生代码。所有的Blade视图最终都会被编译成原生PHP代码并缓存起来直到被修改,这意味着对应用的性能而言Blade基本上是零开销。Blade视图文件使用.blade.php为扩展名放在resource/views目录下。而且在使用各种继承的时候默认的根目录就是这个resource/views。

在模板继承方面:
@extends(‘父模板’)【这个在子页面使用用于继承父页面的框架结构】
@yield(‘content’)【父页面使用因为blade支持动态修改利用yield在父页面标记子页面利用section就能更改对应的内容】
@section(‘content’)【在子页面使用匹配父页面对应的位置(模块)】
@stop【停止当前操作结束类似section】
@include(‘另一个blade模板’)【导入】

在验证是否登入方面:
@auth
//用户已登录,表示如果用户已经登入的话会执行这个区域内的内容
@endauth
@guest
//用户未登录,表示如果用户未登入的话会执行这个区域内的内容
@endguest

//指定登陆类型
@auth(‘admin’)
//该用户已经认证
@endauth
@guest(‘admin’)
//该用户未认证
@endguest

blade引擎中的变量引用:
通过 {{ }} 渲染 PHP 变量(最常用)
通过 {!! !!} 渲染原生 HTML 代码(用于富文本数据渲染)
通过以 @ 作为前缀的 Blade 指令执行一些控制结构和继承、引入之类的操作

{{ }} 通过laravel的blade引擎最终能转换成以下的形式:

<?php echo htmlentities($variable); ?>

{!! !!} 通过laravel的blade引擎最终能转换成以下的形式:

<?php echo $variable; ?>

通过下列代码进行注释:
{{-- 注释内容 --}}

blade引擎中继承:
通过 @yield 和 @section/@show 在布局文件中定义插槽(父页面中使用)
两者的区别:
@section/@show 指定的默认内容子视图可以通过 @parent 访问
而 @yield 指定的默认内容对子视图不可见。

通过 @extends 和 @section/@endsection 在子视图实现继承
通过 @extends 指令指定要继承的布局文件,通过目录名和文件名并以「.」分隔来指定布局文件(Blade 都是通过这种方式指定视图文件,前提是这些视图文件都位于 resources/views 目录中)
然后通过 @section 指令依次实现布局文件中需要子视图继承实现的区块内容
需要通过完整的 @section/@endsection来对利用 @yield的文章的内容进行实现
布局文件中通过 @section/@show 定义,所以我们可以在子视图中通过 @parent 渲染布局文件中指定的默认区块内容(类比于 PHP 类中通过 parent:: 调用父类方法),并添加该视图中需要的新区块内容。

除此之外还可以直接通过@include(‘views目录下的文件’)直接导入类似php中的include

通过 @slot 和 @component 实现更加灵活的内容分发
要在 Blade 中使用插槽分发内容,首先需要创建相应的组件:

{{ $slot }}
然后在需要引入该组件的地方通过 @component 引入: @component('alert') 哎呦! 出错啦! @endcomponent @component 第一个参数对应要引入的组件名,引入组件中 $slot 变量的值通过在引入时 @component 和 @endcomponent 之间的区块内容指定
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值