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

Метод skipRenderIf

Метод skipRenderIf класса Component позволяет условно пропустить рендеринг компонента при выполнении заданного условия. Если условие возвращает true, рендеринг не выполняется и текущее состояние компонента сохраняется. Метод принимает один параметр - условие в виде замыкания.

Синтаксис

<?php use Livewire\Component; class MyComponent extends Component { public function skipRenderIf() { return $this->condition; } } ?>

Пример

Давайте пропустим рендеринг компонента, если свойство $num равно нулю:

<?php namespace App\Livewire; use Livewire\Component; class Counter extends Component { public $num = 0; public function increment() { $this->num++; } public function skipRenderIf() { return $this->num === 0; } public function render() { return view('livewire.counter'); } } ?>
<div> <button wire:click="increment">+</button> <span>{{ $num }}</span> </div>

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

<div> <button>+</button> <span>0</span> </div>

Пример

Пропустим рендеринг, если массив $arr пуст:

<?php namespace App\Livewire; use Livewire\Component; class ArrayComponent extends Component { public $arr = []; public function addItem() { $this->arr[] = count($this->arr) + 1; } public function skipRenderIf() { return empty($this->arr); } public function render() { return view('livewire.array-component'); } } ?>
<div> <button wire:click="addItem">Add</button> <ul> @foreach ($arr as $item) <li>{{ $item }}</li> @endforeach </ul> </div>

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

<div> <button>Add</button> <ul></ul> </div>

Пример

Пропустим рендеринг, если свойство $text содержит определенное значение:

<?php namespace App\Livewire; use Livewire\Component; class TextComponent extends Component { public $text = 'initial'; public function updateText() { $this->text = 'updated'; } public function skipRenderIf() { return $this->text === 'initial'; } public function render() { return view('livewire.text-component'); } } ?>
<div> <button wire:click="updateText">Update</button> <p>{{ $text }}</p> </div>

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

<div> <button>Update</button> <p>initial</p> </div>

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

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