【Laravel】 slotを読んでみた

Laravel

Laravelのビューファイルのを読んでいた時にslotが出てきたので、
どうやって使っているのかな〜と思ったのでメモします。

元々のファイルはこんな感じです↓ ※内容改変しました。

resouces/views/sample.blade.php

<form>
(中略)
<div class="wrapper">
   @component('components.sample') //ここでコンポーネント側に渡している
     @slot('id', 'sample-id')
     @slot('name', 'sample-name')
          @isset($sample-value)
       @slot('olds', $sample-name)
     @endisset
     @endcomponent
</div>
(中略)
</form>

実際のコンポーネントはこちらです↓

resouces/views/components/sample.blade.php

<input type="text" id={{ $id }} placeholder="ここに何か書いてください"/> //$idにsample-idが入る
<input type="hidden" name="{{ $name }}" value="{{ $old }}" /> //$idにsample-namが、戻り値があれば$sample-nameの値が入る

@slot の第一引数を変数名として、第二引数に実際の中身をコンポーネントに渡しているということがわかりました。

使い回ししたい箇所を共通化し、値を渡していくことがやりたいことなのであれば、@slotを使わなくても、

@include('components.sample',[ 'id' => 'sample-id'])

のようにも記述できるわけなので、現時点ではslot(およびcomponent)をあえて利用するメリットが見えてこなかったです。

尚、ネットで検索すると、

@slot('id')
sample-id
@endslot

のようにendを使って挟むサンプルコードが多かったですが、ない方が見た目はスッキリはするなと思いました。

コメント

タイトルとURLをコピーしました