Проверяет понимание механизма подписки на обновления контекста в React Context API.
В React Context API подписка на изменения реализуется автоматически при использовании хука useContext или компонента Consumer. Когда компонент вызывает useContext(MyContext), он регистрируется как подписчик на этот контекст. При изменении значения, переданного в Provider, React уведомляет всех подписанных компонентов и запускает их повторный рендер.
import React, { createContext, useContext, useState } from 'react';
const ThemeContext = createContext('light');
function App() {
const [theme, setTheme] = useState('light');
return (
<ThemeContext.Provider value={{ theme, setTheme }}>
<Toolbar />
</ThemeContext.Provider>
);
}
function Toolbar() {
const { theme, setTheme } = useContext(ThemeContext);
return (
<div>
<p>Current theme: {theme}</p>
<button onClick={() => setTheme(theme === 'light' ? 'dark' : 'light')}>
Toggle
</button>
</div>
);
}useMemo, чтобы избежать лишних рендеров.Context API удобен для передачи глобальных данных (тема, авторизация, язык) без пропс-дриллинга. Однако стоит применять его с осторожностью для часто изменяемых данных, так как это может вызвать избыточные рендеры. Для сложных состояний лучше использовать Redux или другие библиотеки управления состоянием.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию