Ответ
Провайдер (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) для глобального доступа к состоянию.