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

Метод updated

Метод updated класса Component вызывается автоматически после обновления любого публичного свойства компонента. Он принимает два параметра: новое значение свойства и его старое значение. Этот метод полезен для выполнения побочных действий при изменении данных, таких как валидация, обновление других свойств или вызов внешних API.

Синтаксис

<?php namespace AppLivewire; use LivewireComponent; class ExampleComponent extends Component { public $property; public function updated($property, $value) { // Действия после обновления свойства } public function render() { return view('livewire.example'); } } ?>

Метод updated автоматически получает имя изменённого свойства и его новое значение.

Пример

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

<?php namespace AppLivewire; use LivewireComponent; class TextComponent extends Component { public $text = ''; public $length = 0; public function updated($property, $value) { if ($property === 'text') { $this->length = strlen($value); } } public function render() { return view('livewire.text-component'); } } ?>
<div> <input type="text" wire:model="text" placeholder="Введите текст"> <p>Длина текста: {{ $length }}</p> </div>

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

<input type="text" placeholder="Введите текст"> <p>Длина текста: 5</p>

Пример

Специализированный метод updatedFoo вызывается только при изменении конкретного свойства foo:

<?php namespace AppLivewire; use LivewireComponent; class UserComponent extends Component { public $name = ''; public $status = 'Гость'; public function updatedName($value) { $this->status = $value ? 'Авторизован' : 'Гость'; } public function render() { return view('livewire.user-component'); } } ?>
<div> <input type="text" wire:model="name" placeholder="Введите имя"> <p>Статус: {{ $status }}</p> </div>

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

<input type="text" placeholder="Введите имя"> <p>Статус: Авторизован</p>

Пример

При изменении нескольких свойств можно использовать метод updated с условной логикой:

<?php namespace AppLivewire; use LivewireComponent; class CalculatorComponent extends Component { public $a = 0; public $b = 0; public $sum = 0; public function updated($property, $value) { if ($property === 'a' || $property === 'b') { $this->sum = $this->a + $this->b; } } public function render() { return view('livewire.calculator-component'); } } ?>
<div> <input type="number" wire:model="a"> <span>+</span> <input type="number" wire:model="b"> <span>= {{ $sum }}</span> </div>

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

<input type="number" value="5"> <span>+</span> <input type="number" value="3"> <span>= 8</span>

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

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