Что такое провайдер

Ответ

Провайдер (Provider) — это паттерн в React, который позволяет передавать данные или функциональность через дерево компонентов без явной передачи пропсов на каждом уровне.

Чаще всего используется с Context API:

const ThemeContext = React.createContext('light');

function App() {
  return (
    <ThemeContext.Provider value="dark">
      <Toolbar />
    </ThemeContext.Provider>
  );
}

function Toolbar() {
  return <Button />;
}

function Button() {
  const theme = useContext(ThemeContext);
  return <button className={theme}>Кнопка</button>;
}

Особенности:

  • Избегает пропс-дриллинга.
  • Можно использовать несколько провайдеров.
  • Оптимизируется через React.memo или useMemo.

Используется в библиотеках (Redux, React Router) для глобального доступа к состоянию.