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