Sobes.tech
Middle

Měli bychom používat useEffect, nebo je lepší se od něj odvrátit?

sobes.tech AI

Odpověď od AI

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

Однако стоит избегать излишнего или неправильного использования useEffect, например, когда можно обойтись чистыми вычислениями или использовать другие хуки (useMemo, useCallback). Избавляться от useEffect полностью не стоит, но важно писать эффекты аккуратно, следить за зависимостями и избегать бесконечных циклов.

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

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

function UserProfile({ userId }) {
  const [user, setUser] = useState(null);

  useEffect(() => {
    fetch(`/api/users/${userId}`)
      .then(res => res.json())
      .then(data => setUser(data));
  }, [userId]); // эффект срабатывает при изменении userId

  if (!user) return <div>Loading...</div>;
  return <div>{user.name}</div>;
}

Итого: useEffect — полезный инструмент, но его нужно использовать осознанно и не злоупотреблять.