Компонент ItemGroup
в WordPress является экспериментальным и позволяет отображать список элементов, объединенных и стилизованных в одной группе. Он обычно используется с дочерним компонентом Item
, который наследует стили и параметры от ItemGroup
через контекст. В этом руководстве мы рассмотрим основные параметры и возможности ItemGroup
, а также приведем уникальные примеры для иллюстрации.
Импорт компонентов ItemGroup и Item
Так как ItemGroup
и Item
являются экспериментальными, их следует импортировать с префиксом __experimental
.
import {
__experimentalItemGroup as ItemGroup,
__experimentalItem as Item,
} from '@wordpress/components';
Пример использования ItemGroup
Для начала создадим базовый пример с несколькими элементами Item
, сгруппированными в ItemGroup
.
function MyExample() {
return (
<ItemGroup>
<Item>Элемент 1</Item>
<Item>Элемент 2</Item>
<Item>Элемент 3</Item>
</ItemGroup>
);
}
Этот простой пример отображает три элемента, сгруппированных вместе без дополнительных стилей. Теперь рассмотрим все параметры компонента ItemGroup
.
Параметры компонента ItemGroup
Компонент ItemGroup
поддерживает несколько полезных параметров, позволяющих настраивать отображение и стиль группы элементов. Рассмотрим их подробно:
- isBordered
Добавляет границы вокруг каждого элемента в группе. Полезно, если вы хотите четко выделить каждый элемент визуально.- Тип:
Boolean
- Обязательный: Нет
- Значение по умолчанию:
false
- Тип:
<ItemGroup isBordered={true}>
<Item>Элемент с границей 1</Item>
<Item>Элемент с границей 2</Item>
</ItemGroup>
- isRounded
Делает углы элементов закругленными. Параметр по умолчанию включен, что придает компоненту более мягкий и современный вид.- Тип:
Boolean
- Обязательный: Нет
- Значение по умолчанию:
true
- Тип:
<ItemGroup isRounded={true}>
<Item>Закругленный элемент 1</Item>
<Item>Закругленный элемент 2</Item>
</ItemGroup>
- isSeparated
Отображает элементы по отдельности, добавляя разделительную границу между ними, даже еслиisBordered
установлен вfalse
. Полезно для создания эффекта списка с разделителями.- Тип:
Boolean
- Обязательный: Нет
- Значение по умолчанию:
false
- Тип:
<ItemGroup isSeparated={true}>
<Item>Элемент 1 с разделителем</Item>
<Item>Элемент 2 с разделителем</Item>
</ItemGroup>
- size
Определяет внутренние отступы (padding) элементов. Поддерживаемые значения:small
,medium
,large
. Если размер не указан, компонент использует значение из контекста, которое по умолчанию равноmedium
.- Тип:
String
- Обязательный: Нет
- Значение по умолчанию:
medium
- Тип:
<ItemGroup size="large">
<Item>Крупный элемент 1</Item>
<Item>Крупный элемент 2</Item>
</ItemGroup>
Связь с дочерними компонентами через Context
Компонент Item
автоматически получает параметры от ItemGroup
через контекст, поэтому нет необходимости передавать их вручную каждому элементу. Например, если вы задаете size
для ItemGroup
, все дочерние элементы Item
будут отображаться с тем же размером.
<ItemGroup size="small">
<Item>Маленький элемент</Item>
<Item>Другой маленький элемент</Item>
</ItemGroup>
В этом примере оба элемента будут отображены с небольшим внутренним отступом.
Пример 1: Группа элементов с границами и закругленными углами
function BorderedRoundedExample() {
return (
<ItemGroup isBordered={true} isRounded={true} size="medium">
<Item>Элемент с границей и округл. углами 1</Item>
<Item>Элемент с границей и округл. углами 2</Item>
</ItemGroup>
);
}
Здесь каждый элемент в группе будет отображен с границами и закругленными углами, что создаст аккуратный, визуально выделенный список.
Пример 2: Список с разделителями и малым размером элементов
function SeparatedSmallExample() {
return (
<ItemGroup isSeparated={true} size="small">
<Item>Элемент с разделителем 1</Item>
<Item>Элемент с разделителем 2</Item>
<Item>Элемент с разделителем 3</Item>
</ItemGroup>
);
}
В этом примере добавлены разделительные линии между элементами и уменьшенный размер, что делает группу компактной.
Пример 3: Группа с отключенными границами и округл. углами на большом размере
function LargeRoundedExample() {
return (
<ItemGroup isRounded={false} isBordered={false} size="large">
<Item>Без границ 1</Item>
<Item>Без границ 2</Item>
</ItemGroup>
);
}
Здесь мы отключаем границы и закругленные углы, но используем большой размер для элементов, создавая упрощенный, но выразительный вид.
Заключение
Компонент ItemGroup
в WordPress предоставляет удобные возможности для создания списков элементов, объединенных визуально и стилистически. Используя различные параметры, такие как isBordered
, isRounded
, isSeparated
, и size
, вы можете легко настроить внешний вид группы элементов, чтобы она соответствовала вашим требованиям. Благодаря использованию контекста дочерние элементы автоматически наследуют параметры от ItemGroup
, что делает работу с компонентом еще проще.