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

Вызов без перерисовки в Livewire

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

Модификатор .renderless вызывает метод, но не обновляет HTML компонента после запроса. Состояние на сервере меняется, а видимая страница остаётся как была.

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

<?php namespace App\Livewire; use Livewire\Component; class PostMark extends Component { public $marked = false; public function mark() { $this->marked = true; } public function render() { return view('livewire.post-mark'); } } ?>

Давайте выведем кнопку с renderless и статичную надпись без привязки к свойству: после нажатия состояние на сервере меняется, но HTML компонента не обновляется, и надпись на экране остаётся прежней:

<div> <button wire:click.renderless="mark"> Mark </button> <div>Mark</div> </div>

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

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

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

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

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

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