Що таке context та хук useContext у React
Контекст у React — це спосіб передавати дані між компонентми на будь-якому рівні вкладеності, обходячи ручну передачу пропсів (props) через кожен рівень дерева.
Контекст зручний, коли певні дані (наприклад, поточний користувач, мова, тема) потрібні у багатьох компонентх одночасно.
Чому Контекст?
-
Уникає пропс-дрилінгу — необхідності передавати дані через кілька проміжних компонентів.
-
Дозволяє зручно працювати з глобальними даними:
-
Авторизація
-
Тема (світла / темна)
-
Локалізація
-
Налаштування програми
Приклад Використання Context API
Створення Контексту
import { createContext } from "react";
const ThemeContext = createContext("light");Обгортання Компонентів у Провайдер
<ThemeContext.Provider value="dark">
<App />
</ThemeContext.Provider>Читання Даних за Допомогою useContext
import { useContext } from "react";
function Header() {
const theme = useContext(ThemeContext);
return <h1 className={`header ${theme}`}>Hello!</h1>;
}Тепер компонент Header знає, що тема "темна", без пропсів!
useContext: як це працює?
const value = useContext(ContextObject);- Дозволяє отримати поточне значення контексту
- Працює тільки всередині компонент, обгорнутого в
Context.Provider - Автоматично оновлюється, коли значення в
Providerзмінюється
ThemeContext.Provider
Компонент Header
Компонент Sidebar
Хук useContext
Приклад Перемикання Теми
const ThemeContext = createContext("light");
function ThemeSwitcher() {
const theme = useContext(ThemeContext);
return <button className={`btn-${theme}`}>Switch theme</button>;
}Коли Не Використовувати Контекст
- Для часто оновлюваних значень (наприклад, поточне значення вводу)
- Коли дані можна передати безпосередньо через пропси (контекст = "важка артилерія")
Підсумок
- Контекст потрібен для зручного обміну даними між компонентми без надмірної передачі пропсів.
- Хук
useContextдозволяє легко отримувати значення контексту. - Підходить для теми, мови, налаштувань користувача, глобального стану.
Порада:
Використовуйте контекст для даних, які потрібні багатьом компонентм і рідко змінюються.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.