РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
38 of 274 menu

Директива wire:model.live.debounce

Директива wire:model.live.debounce используется для привязки поля ввода к свойству компонента с одновременной установкой задержки обновления. Она комбинирует поведение wire:model.live (немедленное обновление при вводе) с задержкой debounce, которая ограничивает частоту отправки запросов на сервер. В значение передаётся время задержки в миллисекундах.

Синтаксис

<input type="text" wire:model.live.debounce.500ms="property">

Пример

Давайте создадим поле ввода, которое при каждом изменении отправляет запрос на сервер с задержкой в 500 миллисекунд:

<?php namespace AppLivewire; use LivewireComponent; class Search extends Component { public $query = ''; public function render() { return view('livewire.search'); } } ?>
<div> <input type="text" wire:model.live.debounce.500ms="query"> <p>Результат поиска: {{ $query }}</p> </div>

Результат выполнения кода:

<div> <input type="text"> <p>Результат поиска: "text"</p> </div>

Пример

Используем задержку в 1 секунду для поля поиска с отображением количества символов:

<?php namespace AppLivewire; use LivewireComponent; class SearchForm extends Component { public $search = ''; public $count = 0; public function updatedSearch() { $this->count = strlen($this->search); } public function render() { return view('livewire.search-form'); } } ?>
<div> <input type="text" wire:model.live.debounce.1000ms="search"> <p>Длина строки: {{ $count }}</p> </div>

Результат выполнения кода:

<div> <input type="text"> <p>Длина строки: 5</p> </div>

Пример

Создадим форму с несколькими полями ввода с разной задержкой обновления:

<?php namespace AppLivewire; use LivewireComponent; class Form extends Component { public $name = ''; public $email = ''; public $phone = ''; public function render() { return view('livewire.form'); } } ?>
<div> <input type="text" wire:model.live.debounce.300ms="name" placeholder="Имя"> <input type="text" wire:model.live.debounce.500ms="email" placeholder="Email"> <input type="text" wire:model.live.debounce.800ms="phone" placeholder="Телефон"> <p>Имя: {{ $name }}</p> <p>Email: {{ $email }}</p> <p>Телефон: {{ $phone }}</p> </div>

Результат выполнения кода:

<div> <input type="text" placeholder="Имя"> <input type="text" placeholder="Email"> <input type="text" placeholder="Телефон"> <p>Имя: "John"</p> <p>Email: "john@mail.com"</p> <p>Телефон: "123456789"</p> </div>

Смотрите также

  • директиву wire:model,
    которая выполняет базовую привязку данных
  • директиву wire:model.live,
    которая обновляет данные при каждом вводе
  • директиву wire:model.debounce,
    которая добавляет задержку к стандартной привязке
  • директиву wire:model.blur,
    которая обновляет данные при потере фокуса
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить