Загрузка на каждый запрос в Livewire
Пусть на странице поста виден счётчик обращений к компоненту. Человек обновляет блок кнопкой, но число на экране не меняется: логика сработала лишь при первой загрузке страницы.
Метод boot вызывается
на каждый запрос к
компоненту, включая
самый первый. Сюда
удобно класть код,
который должен повторяться
при любом обращении,
а не только при создании
экземпляра на странице.
Страница откроется
по адресу /posts/boot.
Давайте создадим компонент
PostBoot:
php artisan make:livewire PostBoot --class
Давайте добавим маршрут и страницу:
<?php
Route::get('/posts/boot', function () {
return view('posts-boot');
});
?>
<x-layout>
<livewire:post-boot />
</x-layout>
Давайте заведём поле счётчика и увеличим его в методе boot:
<?php
namespace App\Livewire;
use Livewire\Component;
class PostBoot extends Component
{
public $hits = 0;
public function boot()
{
$this->hits++;
}
public function render()
{
return view('livewire.post-boot');
}
}
?>
Давайте выведем число и кнопку обновления компонента:
<div>
{{ $hits }}
<button
type="button"
wire:click="$refresh"
>
Refresh
</button>
</div>
Создайте компонент EmployeeBoot.
Счётчик работника растёт
на каждое обновление страницы,
а не только при первом заходе.