Взглянем на любой сайт. Он состоит из набора независимых блоков: хедер, сайдбары, футер, контент. Можно сказать, что эти блоки и есть компоненты в том смысле, в котором подразумевается в React.
Если посмотреть на тот же хедер, что в нем можно выделить блок с логотипом, блок контактов, блок с меню и так далее. То есть компоненты могут состоять из других подкомпонентов.
Аналогичным образом дело обстоит в React - сайт строится из набора компонентов, которые в свою очередь могут содержать другие компоненты.
В React каждый компонент представляет собой
отдельный модуль. Обычно разработка начинается
с главного компонента App
, который
содержит в себе остальные.
Давайте потренируемся создавать новые компоненты.
Пусть для примера нам нужен компонент, выводящий
данные продукта. Для этого нам нужно в рабочей
папке создать файл Product.js
и добавить
в него следующий код:
import React from 'react';
function Product() {
return <p>
product
</p>;
}
export default Product;
Как вы видите, сейчас наш компонент возвращает абзац с текстом. В следующих уроках мы подправим этот текст так, чтобы возвращались данные продукта, оформленные в нужную нам верстку. Но пока для разминки оставим просто абзац с заготовочным текстом.
Давайте теперь выведем наш созданный компонент
в компоненте App
. Пусть сейчас наш
App
имеет следующий код:
import React from 'react';
function App() {
return <div>
text
</div>;
}
export default App;
Для начала нам нужно импортировать созданный нами компонент с продуктом:
import React from 'react';
import Product from './Product'; // импортируем продукт
function App() {
return <div>
text
</div>;
}
export default App;
После такого импорта внутри компонента App
можно использовать компонент Product
.
Как использовать
Каждому подключенному компоненту соответствует
свой JSX тег. К примеру, у нас есть компонент
Product
, а значит ему соответствует
тег <Product />
.
Название тега компонента обязательно следует писать с большой буквы, чтобы React мог отличить вызов компонента от использования тега HTML.
Итак, давайте внутри компонента App
используем компонент Product
, написав
соответствующий ему тег:
import React from 'react';
import Product from './Product';
function App() {
return <div>
<Product />
</div>;
}
export default App;
В результате после рендиренга получится следующее:
<div>
<p>
product
</p>
</div>
Сделайте компонент User
, который будет
выводить данные юзеров. Пусть сейчас этот
компонент просто выводит какой-нибудь текст.
Используйте этот компонент в компоненте App
.
Несколько экземляров компонента
Можно вставить несколько продуктов. Для этого нужно просто написать несколько тегов компонента:
import React from 'react';
import Product from './Product';
function App() {
return <div>
<Product />
<Product />
<Product />
</div>;
}
export default App;
В результате после рендиренга получится следующее:
<div>
<p>
product
</p>
<p>
product
</p>
<p>
product
</p>
</div>
Добавьте в компонент App
несколько
экземляров компонента User
, созданного
вами в предыдущей задаче.