Skip to main content

Що таке хук у React?

Хук (hook) у React - це спеціальна функція, яка дозволяє «підключати» внутрішні можливості React (такі як стан, життєвий цикл, контекст тощо) у функціональних компонентах, без потреби використовувати класи.


Простими словами

Хуки дають функціональним компонентам «мізки» - дозволяють їм запам'ятовувати стан, реагувати на зміни, виконувати побічні ефекти та взаємодіяти з контекстом.


Приклад: useState

Хук useState додає стан у функціональний компонент.

javascript
import { useState } from "react"; function Counter() { const [count, setCount] = useState(0); // the useState hook return ( <div> <p>Count: {count}</p> <button onClick={() => setCount(count + 1)}>Increase</button> </div> ); }

Тут useState(0):

  • створює внутрішній стан count,
  • повертає пару [значення, функція для оновлення].

Приклад: useEffect

Хук useEffect використовується для побічних ефектів, наприклад, запитів до API, роботи з DOM або підписок.

javascript
import { useState, useEffect } from "react"; function User() { const [user, setUser] = useState(null); useEffect(() => { fetch("/api/user") .then(res => res.json()) .then(setUser); }, []); // empty array -> runs once on mount return <div>{user ? user.name : "Loading..."}</div>; }

Основні вбудовані хуки React

ХукПризначення
useStateДодає стан у функціональний компонент
useEffectВиконує побічні ефекти (запити, таймери, підписки)
useContextДозволяє використовувати контекст без Context.Consumer
useReducerКерує станом через редʼюсер (альтернатива useState)
useMemoКешує обчислені значення
useCallbackКешує функції
useRefСтворює «посилання» для зберігання значення між рендерами
useLayoutEffectАналог useEffect, але викликається до відмальовування
useImperativeHandleКерує тим, що доступно батьківському компоненту через ref
useTransition, useDeferredValueКерування відкладеними оновленнями (React 18+)

Правила хуків

  1. Хуки можна викликати лише на верхньому рівні компонента (не всередині if, for або вкладених функцій).
  2. Хуки можна викликати лише всередині функціональних компонентів або власних хуків.

Навіщо React ввів хуки?

До хуків логіка станів і ефектів була доступна лише в класових компонентах. Хуки дозволили:

  • писати менше коду,
  • повторно використовувати логіку через кастомні хуки,
  • позбутися плутанини з this.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.