友人からLaravel周りの相談を受けることが度々あるので、備忘録として残してみる。
相談内容
Blade記法のinclude
とslot
の違いって何?
includeとは
bladeテンプレートを読み込む方法。
@include
ディレクティブを使用する。
一回作ったbladeテンプレートを再利用したいときに使う。
表示する内容を動的にするには、変数を使用する。
slotとは
include
と似ているが、変数だけじゃなくHTML自体を差し込みたいときに使う。
@component
ディレクティブを使用する。
使い分け方
include
ページヘッダーやページフッターなど、固定のもの
変数だけで済むような場合
slot
- 途中にHTMLを差し込みたい場合
slotを使うと何がうれしいの?
HTMLをわざわざ変数に入れて渡す、という手間がいらなくなる。
また、HTMLを変数で渡してそのまま表示したいときには{!! !!}
文を使用してエスケープをしないようにする必要性があるが、そんなことを気にする必要もなくなる。