componentDidMount
— это метод жизненного цикла (lifecycle method) классового компонента в React, который вызывается сразу после того, как компонент был "смонтирован" (добавлен в DOM-дерево). Это ключевой этап в жизненном цикле компонента, который позволяет выполнять побочные эффекты (side effects), такие как:
setTimeout
, setInterval
)class ExampleComponent extends React.Component {
componentDidMount() {
// Код здесь выполнится после монтирования компонента
console.log('Компонент смонтирован!');
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => this.setState({ data }));
}
render() {
return <div>Пример компонента</div>;
}
}
componentDidMount
вызывается только один раз после первого рендера.setState
здесь вызовет повторный рендеринг, но до того, как пользователь увидит интерфейс (это происходит до обновления браузерного экрана).В современных React-приложениях с хуками (hooks) аналогом componentDidMount
является хук useEffect
с пустым массивом зависимостей:
import { useEffect } from 'react';
function ExampleComponent() {
useEffect(() => {
// Аналог componentDidMount
console.log('Компонент смонтирован!');
}, []); // Пустой массив зависимостей = выполнить только при монтировании
return <div>Пример функционального компонента</div>;
}
componentDidMount
код, который может блокировать рендеринг (например, синхронные тяжелые вычисления).componentWillUnmount
(для классов) или в return функции useEffect
(для хуков).
componentDidMount
— это важный метод жизненного цикла React-компонента, который идеально подходит для выполнения операций, требующих наличия DOM или взаимодействия с внешними системами после первоначального рендеринга. В современных проектах его заменяют на useEffect
, но понимание принципов работы componentDidMount
остается важным для любого React-разработчика.