Проброс атрибутов в Livewire
Давайте рассмотрим ситуацию, когда одну и ту же кнопку ставят и на форме, и в узкой таблице. На форме она широкая, в таблице компактная. Если вид зашить в общий шаблон кнопки, для каждого места приходится либо править этот файл, либо плодить отдельные копии.
Атрибуты, написанные на теге
livewire при вызове, попадают
в $attributes шаблона. Их
выводят на корневом элементе,
и страница задаёт оформление
в месте вызова. Имя публичного
свойства в $attributes не
оказывается - туда идут только
лишние атрибуты.
Давайте сделаем страницу
/btn с компонентом
Btn:
php artisan make:livewire Btn --class
Давайте добавим маршрут:
<?php
Route::get('/btn', function () {
return view('btn');
});
?>
На странице вызовем кнопку с классом оформления:
<x-layout>
<livewire:btn class="wide" />
</x-layout>
Класс Btn:
<?php
namespace App\Livewire;
use Livewire\Component;
class Btn extends Component
{
public function render()
{
return view('livewire.btn');
}
}
?>
Давайте выведем атрибуты на
теге button в шаблоне:
<button type="button" {{ $attributes }}>
Submit
</button>
Создайте компонент Link.
Класс оформления задайте
в месте вызова.