Вопрос проверяет понимание жизненного цикла данных в React Context и того, как долго они сохраняются в памяти приложения.
Context в React — это механизм передачи данных вглубь дерева компонентов без явной передачи пропсов на каждом уровне. Время жизни данных в Context напрямую связано с жизненным циклом компонента, который создаёт и предоставляет это значение через Provider.
Значение Context не хранится где-то отдельно в React — оно живёт в состоянии (state) или переменной того компонента, который рендерит Provider. Обычно это useState, useReducer или просто константа.
const ThemeContext = React.createContext('light');
function App() {
const [theme, setTheme] = useState('light');
// theme живёт, пока смонтирован App
return (
<ThemeContext.Provider value={theme}>
<Toolbar />
</ThemeContext.Provider>
);
}
useContext или Context.Consumer.setTheme) React перерисовывает всех потребителей этого Context.Если нужно, чтобы данные переживали размонтирование компонента, их следует хранить вне React — например, в глобальном сторе (Redux, Zustand), в localStorage или на сервере. Context — это лишь транспорт для данных, а не хранилище с собственным временем жизни.
Также важно помнить: Context не оптимизирует ре-рендеры сам по себе. Любое изменение значения провайдера перерисует всех потребителей, поэтому для часто меняющихся данных лучше использовать специализированные решения.
Итог: данные в Context живут ровно столько, сколько существует компонент-провайдер. Context удобен для передачи редко меняющихся значений (тема, локаль, текущий пользователь), но не подходит как долговременное хранилище состояния.
Уровень
Рейтинг:
4
Сложность:
4
Навыки
JavaScript
React
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию