Hack Frontend Community

Методы жизненного цикла компонента в React

Что такое жизненный цикл компонента?

Жизненный цикл компонента в React — это последовательность этапов, через которые проходит компонент от его создания до удаления из DOM.

Жизненный цикл существует только у классовых компонентов, но его поведение можно повторить с помощью хуков в функциональных компонентах.


Этапы жизненного цикла

Жизненный цикл делится на 3 ключевых фазы:

ФазаОписание
MountingМомент появления компонента в DOM
UpdatingОбновление компонента при изменениях
UnmountingУдаление компонента из DOM

Методы Mounting-фазы

МетодКогда вызывается
constructorВ момент создания компонента
static getDerivedStateFromPropsДо рендера (редко используется)
renderОбязательный метод, возвращает JSX
componentDidMountПосле монтирования в DOM

Методы Updating-фазы

МетодКогда вызывается
static getDerivedStateFromPropsПри обновлении пропсов
shouldComponentUpdateПеред ререндером (можно отменить его)
renderПри каждом обновлении
getSnapshotBeforeUpdateСнимок DOM до обновления
componentDidUpdateПосле обновления компонента

Метод Unmounting-фазы

МетодКогда вызывается
componentWillUnmountПеред удалением компонента из DOM

Аналоги в функциональных компонентах

Функции-хуки позволяют повторить поведение жизненного цикла:

Классовый методХук в функции
componentDidMountuseEffect(() => {}, [])
componentDidUpdateuseEffect(() => {...}, [dep])
componentWillUnmountuseEffect(() => { return () => {...} }, [])
shouldComponentUpdateReact.memo() + useCallback, useMemo

Пример использования хуков

import { useEffect } from "react";

function MyComponent() {
  useEffect(() => {
    console.log("Монтирование компонента");

    return () => {
      console.log("Размонтирование компонента");
    };
  }, []);

  return <div>Привет!</div>;
}

Совет:

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