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

Метод boot

Метод boot является частью жизненного цикла компонента Livewire. Он вызывается только один раз - при первом создании экземпляра компонента. В отличие от метода mount, который вызывается при каждой инициализации, метод boot выполняется единожды за всё время существования компонента. Это позволяет использовать его для ресурсоёмких операций, которые не нужно повторять при каждом обновлении компонента.

Синтаксис

Метод boot объявляется как публичный метод в классе компонента. Он не принимает никаких параметров и не возвращает значения.

<?php namespace AppLivewire; use LivewireComponent; class Counter extends Component { public function boot() { // код выполняется один раз } public function render() { return view('livewire.counter'); } } ?>

Пример

Давайте создадим компонент, который при первом запуске устанавливает начальное значение свойства $num:

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

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

<div> <span>Число: 10</span> </div>

Пример

Метод boot выполняется только один раз, поэтому последующие обновления не меняют свойство:

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

После клика на кнопку свойство $num увеличится на 1, но при следующем обновлении компонента метод boot не будет вызван повторно:

<div> <span>Число: 101</span> <button>+1</button> </div>

Пример

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

<?php namespace AppLivewire; use LivewireComponent; use AppModelsUser; class UserProfile extends Component { public $userName = ''; public $userEmail = ''; public function boot() { $user = User::find(1); $this->userName = $user->name; $this->userEmail = $user->email; } public function render() { return view('livewire.user-profile'); } } ?>
<div> <h2>Профиль пользователя</h2> <p>Имя: {{ $userName }}</p> <p>Email: {{ $userEmail }}</p> </div>

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

<div> <h2>Профиль пользователя</h2> <p>Имя: John Doe</p> <p>Email: john@example.com</p> </div>

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

  • метод booted,
    который вызывается после завершения работы метода boot
  • метод mount,
    который вызывается при каждой инициализации компонента
  • метод hydrate,
    который вызывается при восстановлении состояния компонента
  • метод dehydrate,
    который вызывается перед сохранением состояния компонента
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить