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

Метод booted

Метод booted вызывается в классе компонента после завершения метода mount и инициализации всех свойств. Этот метод доступен только в самом компоненте и выполняется при каждом запросе к компоненту (как при первоначальной загрузке, так и при последующих обновлениях через AJAX). В отличие от mount, метод booted не принимает параметры и выполняется после того, как все свойства уже получили свои значения.

Синтаксис

<?php namespace AppLivewire; use LivewireComponent; class ExampleComponent extends Component { public function booted() { // код, который выполняется после инициализации } } ?>

Пример

Давайте создадим компонент, в котором метод booted будет модифицировать свойство после его инициализации:

<?php namespace AppLivewire; use LivewireComponent; class UserComponent extends Component { public $name = 'guest'; public $role = 'user'; public function booted() { $this->name = ucfirst($this->name); $this->role = 'admin'; } public function render() { return view('livewire.user-component'); } } ?>
<div> <p>Name: {{ $name }}</p> <p>Role: {{ $role }}</p> </div>

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

<div> <p>Name: Guest</p> <p>Role: admin</p> </div>

Пример

Метод booted выполняется при каждом обновлении компонента. Давайте добавим счётчик, чтобы увидеть это в действии:

<?php namespace AppLivewire; use LivewireComponent; class CounterComponent extends Component { public $counter = 0; public $bootedCount = 0; public function booted() { $this->bootedCount++; } public function increment() { $this->counter++; } public function render() { return view('livewire.counter-component'); } } ?>
<div> <p>Counter: {{ $counter }}</p> <p>Booted calls: {{ $bootedCount }}</p> <button wire:click="increment">Increment</button> </div>

При каждом нажатии на кнопку метод booted будет вызываться снова, увеличивая значение $bootedCount.

Пример

Метод booted идеально подходит для инициализации данных, которые зависят от уже установленных свойств компонента:

<?php namespace AppLivewire; use LivewireComponent; class ProductComponent extends Component { public $price = 100; public $discount = 10; public $finalPrice; public function booted() { $this->finalPrice = $this->price - ($this->price * $this->discount / 100); } public function render() { return view('livewire.product-component'); } } ?>
<div> <p>Price: {{ $price }}</p> <p>Discount: {{ $discount }}%</p> <p>Final price: {{ $finalPrice }}</p> </div>

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

<div> <p>Price: 100</p> <p>Discount: 10%</p> <p>Final price: 90</p> </div>

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

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