Sobes.tech
Назад к вопросам
Middle
2

Расскажи про рендеринг и жизненный цикл компонентов в React.

Компании, где спрашивали
BI.ZONE

Ответ от нейросети

sobes.tech AI

В React жизненный цикл компонента описывает последовательность этапов от создания до удаления компонента.

Основные этапы жизненного цикла:

  • Монтирование (Mounting): компонент создаётся и вставляется в DOM.

    • constructor — инициализация состояния.
    • render — возвращает JSX.
    • componentDidMount — вызывается после вставки в DOM, здесь удобно делать запросы к API.
  • Обновление (Updating): происходит при изменении props или state.

    • shouldComponentUpdate — решает, нужно ли перерисовывать компонент.
    • render — обновляет UI.
    • componentDidUpdate — вызывается после обновления.
  • Размонтирование (Unmounting): компонент удаляется из DOM.

    • componentWillUnmount — очистка ресурсов, отмена таймеров.

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

Пример с хуком:

import React, { useState, useEffect } from 'react';

function Example() {
  const [count, setCount] = useState(0);

  useEffect(() => {
    // componentDidMount и componentDidUpdate
    document.title = `Вы нажали ${count} раз`;

    return () => {
      // componentWillUnmount
      console.log('Очистка');
    };
  }, [count]); // эффект срабатывает при изменении count

  return (
    <div>
      <p>Вы нажали {count} раз</p>
      <button onClick={() => setCount(count + 1)}>
        Нажми меня
      </button>
    </div>
  );
}