Что такое хуки (Hooks) в React?

«Что такое хуки (Hooks) в React?» — вопрос из категории Other, который задают на 10% собеседований IOS Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Хуки (Hooks) — это функции, появившиеся в React 16.8, которые позволяют использовать состояние, жизненный цикл и другие возможности React в функциональных компонентах (ранее эти возможности были доступны только в классовых компонентах).

Основные встроенные хуки:

  • useState: Объявляет переменную состояния.
    const [count, setCount] = useState(0);
  • useEffect: Выполняет побочные эффекты (запросы к API, подписки, ручное изменение DOM). Заменяет componentDidMount, componentDidUpdate, componentWillUnmount.
    useEffect(() => {
      // Код для выполнения при монтировании/обновлении
      document.title = `Вы нажали ${count} раз`;
      return () => { /* Код для очистки (аналог componentWillUnmount) */ };
    }, [count]); // Зависимости: эффект сработает при изменении count
  • useContext: Подписывает компонент на контекст React, позволяя читать его значение.
  • useReducer: Альтернатива useState для управления сложным состоянием по принципу редюсера (как в Redux).

Правила хуков:

  1. Вызывайте хуки только на верхнем уровне (не внутри циклов, условий или вложенных функций).
  2. Вызывайте хуки только из React-функций (функциональных компонентов или других хуков).

Преимущества: Хуки позволяют писать более чистый, повторно используемый и логически организованный код, избавляясь от сложностей классовых компонентов (например, привязки this).