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

Директива wire:loading.grid

Директива wire:loading.grid используется для отображения индикатора загрузки в виде сетки (грида) во время выполнения асинхронных запросов к серверу. Она автоматически добавляет элементу CSS-класс, который превращает его в сетку с ячейками, анимированными во время загрузки. Директива принимает необязательный параметр delay, который задает задержку перед появлением индикатора.

Синтаксис

<div wire:loading.grid> Loading... </div>

Пример

Давайте создадим компонент, который загружает данные с задержкой:

<?php namespace AppLivewire; use LivewireComponent; class DataLoader extends Component { public $items = []; public function loadData() { sleep(2); $this->items = ['a', 'b', 'c', 'd', 'e']; } public function render() { return view('livewire.data-loader'); } } ?>
<div> <button wire:click="loadData"> Load Data </button> <div wire:loading.grid> Loading... </div> <ul> @foreach ($items as $item) <li>{{ $item }}</li> @endforeach </ul> </div>

Результат выполнения кода:

<div> <button> Load Data </button> <div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;"> <div class="grid-item"></div> <div class="grid-item"></div> <div class="grid-item"></div> </div> <ul> <li>a</li> <li>b</li> <li>c</li> <li>d</li> <li>e</li> </ul> </div>

Пример

Используем параметр delay для задержки появления индикатора:

<?php namespace AppLivewire; use LivewireComponent; class DataLoader extends Component { public $items = []; public function loadData() { sleep(3); $this->items = [1, 2, 3, 4, 5]; } public function render() { return view('livewire.data-loader'); } } ?>
<div> <button wire:click="loadData"> Load Data </button> <div wire:loading.grid.delay.1000ms> Loading... </div> <ul> @foreach ($items as $item) <li>{{ $item }}</li> @endforeach </ul> </div>

Результат выполнения кода:

<div> <button> Load Data </button> <div style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;"> <div class="grid-item"></div> <div class="grid-item"></div> <div class="grid-item"></div> </div> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> </div>

Пример

Используем с другими модификаторами для более гибкого управления:

<?php namespace AppLivewire; use LivewireComponent; class DataLoader extends Component { public $items = []; public function loadData() { sleep(2); $this->items = ['a', 'b', 'c', 'd', 'e']; } public function render() { return view('livewire.data-loader'); } } ?>
<div> <button wire:click="loadData"> Load Data </button> <div wire:loading.grid.class="my-grid" wire:loading.delay.500ms> Loading... </div> <ul> @foreach ($items as $item) <li>{{ $item }}</li> @endforeach </ul> </div>

Результат выполнения кода:

<div> <button> Load Data </button> <div class="my-grid" style="display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;"> <div class="grid-item"></div> <div class="grid-item"></div> <div class="grid-item"></div> </div> <ul> <li>a</li> <li>b</li> <li>c</li> <li>d</li> <li>e</li> </ul> </div>

Смотрите также

  • директиву wire:loading,
    которая отображает индикатор загрузки во время выполнения запросов
  • директиву wire:loading.delay,
    которая задает задержку перед появлением индикатора
  • директиву wire:loading.class,
    которая добавляет CSS-класс во время загрузки
  • директиву wire:loading.target,
    которая привязывает индикатор к конкретному действию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить