Bladeテンプレート コンポーネント Laravel5.8

今回はコンポーネントについて説明します。
コンポーネントはviewを部品化して使い回す場合に便利です。
前提
ファイル構成
今回使用するファイルの構成は以下の通りです。
ファイル名 説明
resources/views/layouts/main.blade.php 親ビュー(レイアウトファイル)
resources/views/sample_01.blade.php 呼び出し元
resources/views/components/component.blade.php 呼び出され側(コンポーネント)
routes/web.php ルーティングファイル
ルーティング
ルーティングは以下の通りです。

@componentディレクティブ
呼び出し元(sample_01.blade.php)から、@componentディレクティブを使用して、コンポーネント(component.blade.php)を呼び出します。
・sample_01.blade.php

コンポーネント側は以下の通りです。
$slot変数で、呼び出し元(sample_01.blade.php)の@componentディレクティブで囲われた部分を表示します。
この変数名は$slotでないとエラーになります。
・component.blade.php

@slotディレクティブ
コンポーネント側で$slot変数以外を使用したい場合、@slotディレクティブを使用します。
呼び出し元(sample_01.blade.php)で、@slotディレクティブを使用します。
引数にはコンポーネントで使用したい変数名を指定します。
なお、@slotディレクティブは@componentディレクティブ内で使用して下さい。
・sample_01.blade.php

コンポーネント側は以下の通りです。
title変数は、呼び出し元(sample_01.blade.php)の@slotディレクティブで指定されている為、呼び出し元の内容が表示されます。
それ以外の部分は$slot変数の内容が表示されます。
$slotは呼び出し元の@slotディレクティブ以外の内容となります。
・component.blade.php

呼び出し元の値を表示させない
コンポーネント側で呼び出し元に関する変数を使用しなければ、呼び出し元の内容は表示されません。
・sample_01.blade.php

・component.blade.php

まとめ
同じようなソースコードの場合、コンポーネントを使用してみましょう。
コンポーネントという概念はよく出てきますのでその他サイトでコンポーネントの考え方について学ぶのも良いと思います。