Найти тему
Frontend-IT

Компоненты в React

Любое приложение React состоит из компонентов.

На рисунке выше пример веб-страницы, которая скомпонована из разных компонентов.

Характеристики компонентов

1. Компоненты можно использовать многократно

Один и тот же компонент можно помещать в разных местах веб-страницы, а также на разных страницах веб-приложения.

2. Компоненты формируют чёткую иерархическую структуру

Есть родительские компоненты, которые включают в себя дочерние компоненты. Дочерние компоненты, так же в свою очередь могут являться родительскими компонентами относительно других дочерних компонентов. Простыми словами есть чёткая вложенность компонентов друг в друга.

Существует так же один, так называемый «корневой компонент» в любом React приложении, который включает в себя остальные дочерние компоненты и их потомки.

3. Видом компонентов можно управлять извне с помощью свойств.

Вид компонента может быть изменен с помощью свойств, которые передаются от родительского компонента – дочернему. Можно провести аналогию с функцией, в которую можно передать те или иные аргументы. Точно так же и в компонентах React, где с помощью свойств можно, например, изменять внешний вид кнопок и т.п.

Свойства, которые дочерний компонент получил от своего родительского компонента позволяют влиять на внешний вид этого дочернего компонента, а также на его поведение.

Кроме того, эти свойства можно передавать дальше другим дочерним компонентам.

4. Компоненты могут иметь своё собственное состояние

Состояние компонентов может изменяться в процессе жизненного цикла приложения, а также жизненного цикла самого компонента. Потому что определённый компонент может появляться в веб-приложении, потом изменять своё состояние, а потом исчезать из веб-приложения, когда клиент, например, переходит на другую веб-страницу приложения.

5. Каждый компонент отвечает за отдельную логическую часть интерфейса.

В целом этот пункт относится к задаче разработчика, который должен разделять приложение так, чтобы каждый компонент выполнял свою определённую задачу, был изолирован от других компонентов.