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

Поле slot класса Component

Поле slot в классе компонента Livewire позволяет определить именованный слот, который может быть заполнен контентом из родительского шаблона. Это дает возможность создавать гибкие компоненты с переиспользуемыми областями для вставки контента. Слоты могут содержать как простой текст, так и HTML-разметку или другие компоненты.

Синтаксис

<?php namespace App\Livewire; use Livewire\Component; class Alert extends Component { public $slot; public function render() { return view('livewire.alert'); } } ?>

Пример

Давайте создадим компонент Alert с полем slot для вывода сообщения:

<?php namespace App\Livewire; use Livewire\Component; class Alert extends Component { public $slot; public function render() { return view('livewire.alert'); } } ?>
<div class="alert"> {{ $slot }} </div>
<livewire:alert> Это сообщение для пользователя </livewire:alert>

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

<div class="alert"> Это сообщение для пользователя </div>

Пример

Использование слота с HTML-разметкой в компоненте Card:

<?php namespace App\Livewire; use Livewire\Component; class Card extends Component { public $slot; public $title; public function render() { return view('livewire.card'); } } ?>
<div class="card"> <h3>{{ $title }}</h3> <div class="card-body"> {{ $slot }} </div> </div>
<livewire:card title="Заголовок карточки"> <p>Это содержимое карточки</p> <p>Может содержать несколько абзацев</p> </livewire:card>

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

<div class="card"> <h3>Заголовок карточки</h3> <div class="card-body"> <p>Это содержимое карточки</p> <p>Может содержать несколько абзацев</p> </div> </div>

Пример

Использование слота с динамическими данными компонента:

<?php namespace App\Livewire; use Livewire\Component; class UserProfile extends Component { public $slot; public $userName; public $userRole; public function render() { $this->userName = 'John Doe'; $this->userRole = 'Administrator'; return view('livewire.user-profile'); } } ?>
<div class="profile"> <h2>{{ $userName }}</h2> <p>Роль: {{ $userRole }}</p> <div class="profile-content"> {{ $slot }} </div> </div>
<livewire:user-profile> <strong>Дополнительная информация:</strong> <ul> <li>Email: john@example.com</li> <li>Телефон: +123456789</li> </ul> </livewire:user-profile>

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

<div class="profile"> <h2>John Doe</h2> <p>Роль: Administrator</p> <div class="profile-content"> <strong>Дополнительная информация:</strong> <ul> <li>Email: john@example.com</li> <li>Телефон: +123456789</li> </ul> </div> </div>

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

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