Ререндеринг компонентов
Важно понимать, что компонент подлежит ререндерингу при изменении свойств или состояния.
Каждый раз, когда меняются свойства, либо состояние компонента React выполняет ререндеринг определённого компонента.
Происходит изменение в виртуальном DOM, текущая версия виртуального DOM сравнивается с предыдущей версией, находятся отличия и потом, если необходимо изменить уже реальный DOM, то React вносит такие изменения в реальный DOM.
При этом React это непосредственно не делает, а этим занимается другая библиотека React DOM для Web-приложений или React Native для мобильных приложений.
React Hooks
Есть ещё одно ключевое понятие в React, которое называется React Hooks.
Появились в версии 16.8 и с помощью React Hooks можно управлять состоянием в функциональных компонентах.
До появления React Hooks состоянием можно было управлять только в классовых компонентах React, ну а функциональные компоненты можно было использовать только для компонентов без собственного состояния.
Сейчас благодаря таким хукам, как useState или useEffect можно легко управлять состоянием в функциональных компонентах и при этом необходимость в использовании классовых компонентов отпадает.