Завершение отрисовки в Livewire
Давайте разберём такой случай.
Шаблон поста уже отрисован
в строку HTML, и по этой
строке нужно показать
число символов на той же
странице. В методе render
готовой разметки ещё нет,
а хранить её целиком
в свойстве ради одной
цифры неудобно.
Метод rendered вызывается
сразу после сборки
представления. Ему передают
шаблон и готовый HTML:
здесь можно посчитать
длину и записать результат
в поле компонента для
следующего вывода.
Страница откроется
по адресу /posts/done.
Давайте создадим компонент
PostDone:
php artisan make:livewire PostDone --class
Давайте добавим маршрут и страницу:
<?php
Route::get('/posts/done', function () {
return view('posts-done');
});
?>
<x-layout>
<livewire:post-done />
</x-layout>
Давайте заведём поле
длины и запишем в него
результат функции
strlen
в методе rendered:
<?php
namespace App\Livewire;
use Livewire\Component;
class PostDone extends Component
{
public $size = 0;
public function rendered($view, $html)
{
$this->size = strlen($html);
}
public function render()
{
return view('livewire.post-done');
}
}
?>
Давайте выведем подпись и число в шаблоне:
<div>
Ready
{{ $size }}
</div>
Создайте компонент EmployeeDone.
На странице работника видна
длина уже собранной разметки.