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

Директива wire:load

Директива wire:load позволяет выполнить метод компонента Livewire в момент, когда элемент появляется в DOM. Это особенно полезно для инициализации данных, загрузки контента из внешних источников или выполнения действий при первом рендеринге компонента. В значение передаётся имя публичного метода, который будет вызван автоматически.

Синтаксис

<div wire:load="methodName"> Содержимое </div>

Пример

Давайте увеличим число $num на 1 при загрузке элемента:

<?php namespace AppLivewire; use LivewireComponent; class Counter extends Component { public $num = 0; public function increment() { $this->num++; } public function render() { return view('livewire.counter'); } } ?>
<div wire:load="increment"> Число: {{ $num }} </div>

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

<div> Число: 1 </div>

Пример

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

<?php namespace AppLivewire; use LivewireComponent; class ArticleList extends Component { public $articles = []; public function loadArticles() { $this->articles = [ 'Article 1', 'Article 2', 'Article 3', 'Article 4', 'Article 5', ]; } public function render() { return view('livewire.article-list'); } } ?>
<div wire:load="loadArticles"> @if (count($articles) > 0) <ul> @foreach ($articles as $article) <li>{{ $article }}</li> @endforeach </ul> @else <p>Загрузка статей...</p> @endif </div>

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

<div> <ul> <li>Article 1</li> <li>Article 2</li> <li>Article 3</li> <li>Article 4</li> <li>Article 5</li> </ul> </div>

Пример

Давайте передадим параметр в метод при загрузке элемента:

<?php namespace AppLivewire; use LivewireComponent; class UserProfile extends Component { public $userId = 1; public $userName = ''; public function loadUser($id) { $users = [ 1 => 'Alice', 2 => 'Bob', 3 => 'Charlie', ]; $this->userName = $users[$id] ?? 'Unknown'; } public function render() { return view('livewire.user-profile'); } } ?>
<div wire:load="loadUser({{ $userId }})"> Привет, {{ $userName }} </div>

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

<div> Привет, Alice </div>

Особенности использования

Директива wire:load выполняется один раз при первом появлении элемента в DOM. Если элемент скрыт с помощью wire:show или условных конструкций, событие сработает только когда элемент станет видимым. При обновлении компонента через Livewire событие wire:load не вызывается повторно.

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

  • директиву wire:init,
    которая выполняет метод при инициализации компонента
  • директиву wire:click,
    которая вызывает метод при клике на элемент
  • директиву wire:submit,
    которая вызывает метод при отправке формы
  • директиву wire:model,
    которая привязывает поле ввода к свойству компонента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить