Skip to main content

Компоненты макетов

Этот документ предоставляет справочник по API и паттерны построения для компонентов макетов в @ui8kit/core. Компоненты макетов организуют множество UI-компонентов в полноценные структуры приложений, таких как панели управления, целевые страницы и административные панели. Для базовых примитивных компонентов макета (Grid, Flex, Stack) см. Базовые компоненты. Для паттернов композиции UI-компонентов см. UI-компоненты. Для общих лучших практик по построению макетов см. Лучшие практики.

Обзор

Библиотека предоставляет три специализированных компонента макета, которые составляют примитивы и UI-компоненты в шаблоны приложений: Эти макеты находятся на уровне 3 архитектуры и строятся на основе примитивов уровня 1 (Block, Box, Grid, Container) и UI-компонентов уровня 2 (Card, Button, Text, Title). Источники: src/layouts/DashLayout.tsx src/layouts/LayoutBlock.tsx src/layouts/SplitBlock.tsx README.md147-168

Взаимосвязи компонентов

Диаграмма: Дерево зависимостей компонентов макета, показывающее, как макеты уровня 3 составляют UI-компоненты уровня 2 и примитивы уровня 1, плюс внешние зависимости для продвинутых функций. Источники: src/layouts/DashLayout.tsx1-99 src/layouts/LayoutBlock.tsx1-389 src/layouts/SplitBlock.tsx1-145

DashLayout

Компонент макета панели управления с изменяемой боковой панелью, навигационной панелью и основной областью контента. Построен на react-resizable-panels для функциональности изменения размера панелей.

Свойства DashLayout

Подкомпонент Navbar

Минималистичная навигационная панель с идентификацией бренда и переключателем темы. Рендерится как семантический элемент <nav> с атрибутом data-role="dash-navbar". Реализация: src/layouts/DashLayout.tsx34-49

Подкомпонент Sidebar

Контейнер изменяемой боковой панели, рендерится как семантический элемент <aside>. Оборачивает дочерние элементы в Stack макет с опциональным заголовком. Реализация: src/layouts/DashLayout.tsx14-25

Структура панелей

Диаграмма: Структура панелей DashLayout, показывающая PanelGroup с изменяемой боковой панелью (20% по умолчанию) и основным контентом (80% по умолчанию), разделенными ручкой изменения размера. Источники: src/layouts/DashLayout.tsx64-91

Паттерн импорта

Источники: src/layouts/DashLayout.tsx93-96

LayoutBlock

Гибкий компонент секции контента, поддерживающий три режима макета: grid, flex и stack. Включает систему хуков контента для настраиваемого рендеринга и презентеры по умолчанию для распространенных паттернов.

Свойства LayoutBlock

Источники: src/layouts/LayoutBlock.tsx32-84

Режимы макета

Система хуков контента

Хуки контента обеспечивают пользовательскую логику рендеринга в определенных точках жизненного цикла макета. Хуки по умолчанию предоставляются для распространенных паттернов: Источники: src/layouts/LayoutBlock.tsx23-30 src/layouts/LayoutBlock.tsx229-254

Рендереры элементов по умолчанию

Диаграмма: Логика выбора рендерера элемента по умолчанию на основе режима макета и структуры контента. Источники: src/layouts/LayoutBlock.tsx123-227

Паттерн импорта

Источники: src/layouts/LayoutBlock.tsx256-389

SplitBlock

Компонент двухколоночного разделенного макета для героических секций и демонстрации функций. Поддерживает позиционирование медиа слева/справа и опциональную обертку в контейнер.

Свойства SplitBlock

Источники: src/layouts/SplitBlock.tsx17-55

Режимы макета

Система хуков контента

Минимальная система хуков для настройки контента. Рендерер контента по умолчанию применяет хуки последовательно: Реализация: src/layouts/SplitBlock.tsx57-65

Паттерн импорта

Источники: src/layouts/SplitBlock.tsx67-145

Паттерны построения по сценариям использования

Целевые страницы

Целевые страницы обычно комбинируют множество компонентов LayoutBlock и SplitBlock для героических секций, функций и призывов к действию.
Диаграмма: Типичная структура целевой страницы с использованием компонентов макета. Паттерн импорта:
Пример структуры:
Источники: src/layouts/LayoutBlock.tsx1-389 src/layouts/SplitBlock.tsx1-145

Панели управления

Панели управления используют DashLayout как основной контейнер с изменяемой боковой панелью для навигации.
Диаграмма: Структура панели управления с DashLayout и вложенными макетами контента. Паттерн импорта:
Пример структуры:
Источники: src/layouts/DashLayout.tsx1-99 src/layouts/LayoutBlock.tsx1-389

Веб-сайты

Многостраничные веб-сайты составляют секции LayoutBlock с различными режимами макета для разнообразных типов контента.
Диаграмма: Структура страницы веб-сайта, комбинирующая различные типы макетов. Паттерн импорта:
Пример структуры:
Источники: src/layouts/LayoutBlock.tsx1-389 src/layouts/SplitBlock.tsx1-145

Административные панели

Административные панели расширяют паттерн панели управления с макетами форм и интерфейсами управления данными.
Диаграмма: Структура административной панели с макетами форм и компонентами управления данными. Паттерн импорта:
Пример структуры:
Источники: src/layouts/DashLayout.tsx1-99 src/layouts/LayoutBlock.tsx1-389

Распространенные паттерны композиции

Конфигурации адаптивной сетки

Источники: src/layouts/LayoutBlock.tsx280-324

Композиция хуков контента

Источники: src/layouts/LayoutBlock.tsx388-389

Вложенная композиция макетов

Источники: src/layouts/LayoutBlock.tsx256-383 src/layouts/SplitBlock.tsx67-137

Атрибуты данных для таргетинга

Компоненты макета включают атрибуты data-class и data-role для согласованного таргетинга DOM: Источники: src/layouts/DashLayout.tsx18-48 src/layouts/LayoutBlock.tsx320-345 src/layouts/SplitBlock.tsx129