Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React: useeffect

Как правильно использовать useEffect для различных ситуаций?

Этот вопрос проверяет понимание хуков в React, в частности useEffect, и их применение в различных сценариях.

Короткий ответ

Хук useEffect используется для выполнения побочных эффектов в функциональных компонентах, таких как запросы к API, подписки или манипуляции с DOM. Он принимает два аргумента: функцию обратного вызова и массив зависимостей. Массив определяет, когда эффект должен быть запущен, например, при первом рендеринге или при изменении определенных переменных. Для очистки эффектов можно вернуть функцию из хука.

Длинный ответ

Хук useEffect — это мощный инструмент для управления побочными эффектами в функциональных компонентах React. Он позволяет выполнять действия после того, как компонент был отрисован, что делает его идеальным для обработки таких задач, как:

  • Запросы к API: Получение данных при монтировании компонента.

  • Подписки: Установка подписок на события, такие как изменения данных.

  • Манипуляции с DOM: Изменение элементов на странице после рендеринга.

Пример использования useEffect для получения данных с API:

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

function DataFetchingComponent() {
  	const [data, setData] = useState([]);  
  
  	useEffect(() => {
      		fetch('https://api.example.com/data')      
      			.then(response => response.json())      
      			.then(data => setData(data))      
      			.catch(error => console.error('Ошибка:', error));  
  	 }, []); 
  	 // Пустой массив зависимостей означает, что эффект выполняется только при первом рендере  
      
   	return (
       		<ul>   
          		{data.map(item => (    
              			<li key={item.id}>{item.name}</li>      
          		))}    
       		</ul>  
   	); 
}

В этом примере useEffect выполняется только один раз — при монтировании компонента, благодаря пустому массиву зависимостей. Это позволяет избежать лишних запросов при каждом обновлении.

Чтобы управлять подписками, вы можете использовать функцию очистки, которая возвращается из useEffect:

useEffect(() => {
  	const subscription = someAPI.subscribe(data => {
      		setData(data);  
 	 });  
  	return () => {
      		subscription.unsubscribe(); // Очищаем подписку при размонтировании компонента  
 	 }; 
}, []);

Массив зависимостей — это важный аспект useEffect. Если вы передаете переменные в массив, useEffect будет выполняться каждый раз, когда эти переменные изменяются. Это позволяет управлять поведением эффекта в зависимости от состояния вашего приложения.

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

Уровень

  • Рейтинг:

    4

  • Сложность:

    5

Навыки

  • React

    React

Ключевые слова

#useeffect

Подпишись на React Developer в телеграм