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

Вызов без ожидания в Livewire

Давайте теперь посмотрим на долгий запрос по кнопке. Пока он идёт, следующие клики по странице ждут ответа, и вторая кнопка не отзывается, хотя ей нужен свой короткий метод.

Модификатор .async отправляет вызов без блокировки очереди действий на клиенте. Долгий метод крутится на сервере, а остальной интерфейс остаётся живым.

Страница откроется по адресу /posts/slow. Давайте опишем компонент PostSlow:

<?php namespace App\Livewire; use Livewire\Component; class PostSlow extends Component { public $slow = ''; public $quick = ''; public function slow() { sleep(1); $this->slow = 'Slow done'; } public function quick() { $this->quick = 'Quick done'; } public function render() { return view('livewire.post-slow'); } } ?>

Давайте выведем долгую кнопку с async, рядом обычную и оба свойства:

<div> <button wire:click.async="slow"> Slow </button> <button wire:click="quick"> Quick </button> <div>{{ $slow }}</div> <div>{{ $quick }}</div> </div>

Давайте откроем страницу по адресу /posts/slow:

<?php Route::get('/posts/slow', function () { return view('posts-slow'); }); ?>

Давайте вставим компонент на страницу:

<x-layout> <livewire:post-slow /> </x-layout>

Создайте компонент EmployeeSlow. Долгое действие не мешает нажать другую кнопку, пока оно идёт.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить