В React передача компонентов как дочерних — распространенный шаблон, позволяющий создавать гибкий и многократно используемый код. Для этого можно использовать несколько методов:
- Использование свойства Children: компоненты React могут иметь специальный реквизит под названием «дети», который позволяет передавать компоненты как дочерние. Вот пример:
function ParentComponent() {
return (
<div>
<h1>Parent Component</h1>
<ChildComponent />
</div>
);
}
function ChildComponent() {
return <p>Child Component</p>;
}
В этом примере ChildComponent
передается как дочерний элемент ParentComponent
, просто помещая его между открывающим и закрывающим тегами ParentComponent
.
- Использование пользовательского свойства: вы также можете определить свой собственный реквизит и передать ему компонент. Это может быть полезно, если вы хотите передать дочернему компоненту дополнительные реквизиты. Вот пример:
function ParentComponent() {
return (
<div>
<h1>Parent Component</h1>
<ChildComponent customProp={<NestedComponent />} />
</div>
);
}
function ChildComponent(props) {
return <div>{props.customProp}</div>;
}
function NestedComponent() {
return <p>Nested Component</p>;
}
В этом примере NestedComponent
передается как свойство с именем customProp
в ChildComponent
.
- Использование функции карты. Если вам нужно передать несколько компонентов в качестве дочерних, вы можете использовать функцию
map
для перебора массива и визуализации каждого компонента. Вот пример:
function ParentComponent() {
const components = [<ChildComponent key={1} />, <ChildComponent key={2} />];
return (
<div>
<h1>Parent Component</h1>
{components.map((component, index) => (
<div key={index}>{component}</div>
))}
</div>
);
}
function ChildComponent() {
return <p>Child Component</p>;
}
В этом примере ParentComponent
создает массив экземпляров ChildComponent
и использует функцию map
для визуализации каждого из них.