Laravel Blade中@stop、@show、@endsection、@append的差异解析
Laravel Blade 区块闭合指令差异详解
嘿,关于Laravel Blade里这些区块闭合指令的差异,我给你理得明明白白的:
@endsection和@stop:这俩现在功能完全一致!之前确实有过其中一个被短暂弃用的小插曲,但目前官方已经统一了它们的作用——结束当前区块的定义,不会立即输出内容。你写完区块内容后用这俩指令,内容只会被存储起来,等着@yield或者其他方式去调用,不会直接在当前位置显示出来。@show:这个指令的特殊之处在于,它在结束区块定义的同时,会立刻把该区块的内容输出到当前位置。相当于你写完区块内容后,系统自动帮你执行了一次@yield('sectionName')。举个例子:@section('content') 这是父视图的默认内容 @show这段代码既完成了
content区块的默认内容定义,又直接把内容渲染出来了。如果子视图覆盖这个区块,就会替换掉默认内容并显示新内容。@append:这个是用来追加内容到已存在的区块,而不是直接覆盖原有内容。比如父视图里已经定义了一个脚本区块:@section('scripts') <script src="main.js"></script> @endsection子视图里如果用
@append:@section('scripts') @parent <script src="child-specific.js"></script> @append最终
scripts区块会同时包含父视图的main.js和子视图的child-specific.js。要是换成@endsection,子视图的内容就会完全覆盖父视图的原有内容啦。
内容的提问来源于stack exchange,提问作者Bert H
相关产品推荐
相关产品推荐

