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

Начальная инициализация в Livewire

Пусть на странице есть блок, который показывает, когда его открыли, и рядом счётчик с кнопкой. Человек жмёт кнопку снова и снова, а подпись со временем должна остаться той же, что при первом показе. Если время пересчитывать при каждом обновлении, момент открытия теряется.

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

Давайте соберём компонент PostOpen и выведем его на обычной странице, не как отдельный адрес:

php artisan make:livewire PostOpen --class

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

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

Давайте на странице вставим компонент через тег livewire:

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

Давайте в классе заведём свойства и метод mount, который запишет время через date:

<?php namespace App\Livewire; use Livewire\Component; class PostOpen extends Component { public $opened; public $count = 0; public function mount() { $this->opened = date('H:i:s'); } public function inc() { $this->count++; } public function render() { return view('livewire.post-open'); } } ?>

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

<div> <div>{{ $opened }}</div> <div>{{ $count }}</div> <button type="button" wire:click="inc"> Add </button> </div>

Создайте компонент EmployeeCard. При первом появлении на странице в нём должна оказаться подпись Desk, и кнопка эту подпись не стирает.

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