なずなログ

ただのSIer系SEが思ったことや色々書く感じのアレです

【Laravel】Blade記法のincludeとslotの違い

友人からLaravel周りの相談を受けることが度々あるので、備忘録として残してみる。

相談内容

Blade記法のincludeslotの違いって何?

includeとは

bladeテンプレートを読み込む方法。
@includeディレクティブを使用する。 一回作ったbladeテンプレートを再利用したいときに使う。
表示する内容を動的にするには、変数を使用する。

slotとは

includeと似ているが、変数だけじゃなくHTML自体を差し込みたいときに使う。
@componentディレクティブを使用する。

使い分け方

include

  • ページヘッダーやページフッターなど、固定のもの

  • 変数だけで済むような場合

slot

  • 途中にHTMLを差し込みたい場合

slotを使うと何がうれしいの?

HTMLをわざわざ変数に入れて渡す、という手間がいらなくなる。
また、HTMLを変数で渡してそのまま表示したいときには{!! !!}文を使用してエスケープをしないようにする必要性があるが、そんなことを気にする必要もなくなる。