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

Метод skipMount

Метод skipMount класса Component позволяет пропустить выполнение метода mount при монтировании компонента. Метод должен возвращать true для пропуска монтирования или false для его выполнения. Это полезно, когда нужно предотвратить инициализацию компонента при определенных условиях, например, при отсутствии необходимых данных в сессии или при перенаправлении.

Синтаксис

<?php namespace AppLivewire; use LivewireComponent; class ExampleComponent extends Component { public function mount() { // Инициализация компонента } public function skipMount() { return false; // или true для пропуска } public function render() { return view('livewire.example-component'); } } ?>

Пример

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

<?php namespace AppLivewire; use LivewireComponent; use IlluminateSupportFacadesAuth; class ProfileComponent extends Component { public $userId; public $userData; public function mount($userId) { $this->userId = $userId; $this->userData = [ 'name' => 'John Doe', 'email' => 'john@example.com' ]; } public function skipMount() { return !Auth::check(); } public function render() { return view('livewire.profile-component'); } } ?>
<div> @if($userData) <h2>{{ $userData['name'] }}</h2> <p>{{ $userData['email'] }}</p> @else <p>Please login to view profile</p> @endif </div>

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

<div> <p>Please login to view profile</p> </div>

Пример

Давайте создадим компонент с формой, которая пропускает монтирование, если данные уже были отправлены ранее:

<?php namespace AppLivewire; use LivewireComponent; use IlluminateSupportFacadesSession; class ContactForm extends Component { public $name; public $email; public $message; public $submitted = false; public function mount() { $this->name = old('name', ''); $this->email = old('email', ''); $this->message = old('message', ''); } public function skipMount() { return Session::has('form_submitted'); } public function submit() { Session::put('form_submitted', true); $this->submitted = true; } public function render() { return view('livewire.contact-form'); } } ?>
<div> @if($submitted) <p>Thank you for your message!</p> @else <form wire:submit="submit"> <input type="text" wire:model="name" placeholder="Name"> <input type="email" wire:model="email" placeholder="Email"> <textarea wire:model="message" placeholder="Message"></textarea> <button type="submit">Send</button> </form> @endif </div>

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

<div> <p>Thank you for your message!</p> </div>

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

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