Отложенный остров в Livewire
Давайте разберём такой случай. Сводка по посту нужна сразу после открытия страницы, но готовить её вместе с шапкой нельзя - первый экран появляется слишком поздно.
Параметр defer у island откладывает первую отрисовку острова на запрос после загрузки страницы. Верх рисуется сразу, блок догружается сам, без прокрутки до него.
Страница откроется
по адресу /posts/soon.
Давайте создадим компонент
PostSoon:
php artisan make:livewire PostSoon --class
Давайте добавим маршрут и страницу:
<?php
Route::get('/posts/soon', function () {
return view('posts-soon');
});
?>
<x-layout>
<livewire:post-soon />
</x-layout>
Давайте обернём сводку в остров с defer:
<div>
@island(defer: true)
Soon
@endisland
</div>
Давайте опишем класс компонента:
<?php
namespace App\Livewire;
use Livewire\Component;
class PostSoon extends Component
{
public function render()
{
return view('livewire.post-soon');
}
}
?>
Создайте компонент EmployeeSoon.
Сводка работника догружается
сразу после страницы,
не дожидаясь прокрутки.