Junior
45
questionbank

Перечислите методы жизненного цикла компонента.

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

Методы жизненного цикла компонента в React делятся на три фазы:

1. Монтирование (Mounting):

  • constructor(): Вызывается перед монтированием компонента. Используется для инициализации состояния и привязки методов.
  • static getDerivedStateFromProps(props, state): Вызывается перед рендерингом. Позволяет обновить состояние на основе новых пропсов. Должен вернуть объект для обновления состояния или null.
  • render(): Обязательный метод, возвращает React-элементы для отображения.
  • componentDidMount(): Вызывается после монтирования (после первого рендера). Подходит для сетевых запросов, подписок и работы с DOM.

2. Обновление (Updating):

  • static getDerivedStateFromProps(props, state): Вызывается перед рендерингом при каждом обновлении (как и при монтировании).
  • shouldComponentUpdate(nextProps, nextState): Позволяет оптимизировать производительность, возвращая false, если рендер не нужен. По умолчанию возвращает true.
  • render(): Вызывается при каждом обновлении компонента.
  • getSnapshotBeforeUpdate(prevProps, prevState): Вызывается непосредственно перед тем, как последнее отображение будет выведено в DOM. Позволяет получить информацию о DOM (например, положение скролла) перед потенциальными изменениями. Возвращаемое значение передается в componentDidUpdate.
  • componentDidUpdate(prevProps, prevState, snapshot): Вызывается после обновления компонента (после каждого рендера после первого). Подходит для выполнения действий после обновления DOM.

3. Размонтирование (Unmounting):

  • componentWillUnmount(): Вызывается непосредственно перед удалением компонента из DOM. Используется для очистки (отписки, отмены таймеров и т.д.).

Обработка ошибок:

  • static getDerivedStateFromError(error): Вызывается при возникновении ошибки в дочернем компоненте. Позволяет обновить состояние, чтобы показать fallback UI.
  • componentDidCatch(error, info): Вызывается при возникновении ошибки в дочернем компоненте. Позволяет логировать информацию об ошибке.