Назад к вопросам
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>
);
}