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

Класс Component

Класс Component является базовым для всех компонентов в Laravel Blade. Он предоставляет функциональность для создания многократно используемых частей интерфейса, позволяет передавать данные, определять слоты и управлять рендерингом. Компоненты могут быть как анонимными, так и классовыми, причём классовые компоненты дают больше возможностей для организации логики.

Создание компонента

Для создания компонента используется Artisan команда:

<?php php artisan make:component Alert ?>

Эта команда создаст два файла: класс компонента в app/View/Components и шаблон в resources/views/components.

Синтаксис

Класс компонента наследуется от Component и реализует метод render, который должен возвращать представление:

<?php namespace AppViewComponents; use IlluminateViewComponent; class Alert extends Component { public $type; public $message; public function __construct($type, $message) { $this->type = $type; $this->message = $message; } public function render() { return view('components.alert'); } } ?>

Пример

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

<div class="alert alert-{{ $type }}"> {{ $message }} {{ $slot }} </div>
<x-alert type="success" message="Operation completed successfully"> Additional information </x-alert>

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

<div class="alert alert-success"> Operation completed successfully Additional information </div>

Пример

Компонент с методом для определения необходимости рендеринга через shouldRender:

<?php namespace AppViewComponents; use IlluminateViewComponent; class Visibility extends Component { public $show; public function __construct($show = true) { $this->show = $show; } public function shouldRender() { return $this->show; } public function render() { return view('components.visibility'); } } ?>
<div> This content is visible </div>
<x-visibility :show="true" /> <x-visibility :show="false" />

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

<div> This content is visible </div>

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

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