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

Пропуск отрисовки в Livewire

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

Метод skipRender на компоненте говорит фреймворку не отправлять новый HTML в этом ответе. Состояние на сервере уже изменилось, а браузер оставляет прежний вид блока.

Страница откроется по адресу /posts/quiet. Давайте создадим компонент PostQuiet:

php artisan make:livewire PostQuiet --class

Давайте добавим маршрут и страницу:

<?php Route::get('/posts/quiet', function () { return view('posts-quiet'); }); ?>
<x-layout> <livewire:post-quiet /> </x-layout>

Давайте опишем метод mark: он запишет факт сохранения и вызовет skipRender:

<?php namespace App\Livewire; use Livewire\Component; class PostQuiet extends Component { public $saved = ''; public function mark() { $this->saved = 'Saved'; $this->skipRender(); } public function render() { return view('livewire.post-quiet'); } } ?>

Давайте выведем статичную подпись, поле и кнопку:

<div> Still {{ $saved }} <button type="button" wire:click="mark" > Mark </button> </div>

Создайте компонент EmployeeQuiet. Кнопка отмечает работника на сервере и не перерисовывает страницу.

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