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

Атрибут data-loading

Атрибут data-loading вешается на HTML-элемент и управляет его видимостью во время выполнения сетевых запросов Livewire. В значение атрибута передаётся имя метода компонента, при выполнении которого элемент будет скрыт или показан. По умолчанию элемент с этим атрибутом скрывается во время выполнения любых сетевых запросов.

Синтаксис

<div data-loading> Идёт загрузка... </div>

Пример

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

<?php namespace AppLivewire; use LivewireComponent; class DataLoader extends Component { public $data = []; public $loading = false; public function loadData() { sleep(2); $this->data = ['a', 'b', 'c', 'd', 'e']; } public function render() { return view('livewire.data-loader'); } } ?>
<div> <button wire:click="loadData"> Загрузить данные </button> <div data-loading> Загрузка... </div> <ul> @foreach ($data as $item) <li>{{ $item }}</li> @endforeach </ul> </div>

Пример

Давайте привяжем индикатор к конкретному методу с помощью data-loading и wire:target:

<?php namespace AppLivewire; use LivewireComponent; class MultipleActions extends Component { public $result = ''; public function fastAction() { $this->result = 'Быстрое действие выполнено'; } public function slowAction() { sleep(3); $this->result = 'Медленное действие выполнено'; } public function render() { return view('livewire.multiple-actions'); } } ?>
<div> <button wire:click="fastAction"> Быстрое действие </button> <button wire:click="slowAction"> Медленное действие </button> <div data-loading wire:target="slowAction"> Выполняется медленное действие... </div> <p>{{ $result }}</p> </div>

Пример

Давайте используем атрибут data-loading для изменения внешнего вида элемента во время загрузки:

<?php namespace AppLivewire; use LivewireComponent; class ButtonLoader extends Component { public $status = 'Готов'; public function process() { sleep(2); $this->status = 'Готово'; } public function render() { return view('livewire.button-loader'); } } ?>
<div> <button wire:click="process" data-loading="attr:disabled" > <span data-loading="remove">Обработать</span> <span data-loading>Обработка...</span> </button> <p>Статус: {{ $status }}</p> </div>

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

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