Получить доступ

Context

Основа

Передача данных вглубь дерева без проброса props — и почему это не менеджер состояния.

const ThemeContext = createContext("light");

function App() {
  const [theme, setTheme] = useState("dark");
  return <ThemeContext value={theme}><Page /></ThemeContext>;
}

function Button() {
  const theme = useContext(ThemeContext);
  return <button className={theme}>Ок</button>;
}

Что важно знать

  • Подходит для редко меняющихся данных, нужных многим: тема, язык, текущий пользователь.
  • При изменении значения перерисовываются все компоненты, читающие контекст. Объект-значение, созданный заново на каждом рендере, перерисует их всегда — оборачивать в useMemo или разделять контексты.
  • Часто проблему проброса props лучше решает композиция через children.
  • Для часто меняющегося общего состояния — Zustand, Redux Toolkit или библиотеки серверного состояния.

Документация

← Вся карта «React»

Закрытая бета

Знать тему — половина дела

На живом собеседовании sotto слышит вопрос интервьюера и показывает короткий ответ и план. Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем