Проверяет умение синхронизировать состояние React-компонента с localStorage, что важно для сохранения пользовательских данных между сессиями.
localStorage — это встроенное в браузер хранилище ключ-значение, которое сохраняет данные между сессиями и перезагрузками страницы. В React состояние компонента живёт только в памяти, поэтому при обновлении страницы оно теряется. Синхронизация позволяет сохранить, например, тему оформления, черновик формы или настройки пользователя.
Идея проста: при первом рендере мы читаем значение из localStorage и используем его как начальное состояние. Затем при каждом изменении состояния записываем новое значение обратно в localStorage.
import { useState, useEffect } from 'react';
function useLocalStorage(key, initialValue) {
const [value, setValue] = useState(() => {
const saved = localStorage.getItem(key);
return saved !== null ? JSON.parse(saved) : initialValue;
});
useEffect(() => {
localStorage.setItem(key, JSON.stringify(value));
}, [key, value]);
return [value, setValue];
}
export default useLocalStorage;function ThemeSwitcher() {
const [theme, setTheme] = useLocalStorage('theme', 'light');
return (
<button onClick={() => setTheme(theme === 'light' ? 'dark' : 'light')}>
Тема: {theme}
</button>
);
}Итог: синхронизация состояния с localStorage полезна для сохранения пользовательских настроек и черновиков без бэкенда. Используйте кастомный хук, чтобы избежать дублирования кода и упростить повторное применение.
Уровень
Рейтинг:
4
Сложность:
4
Навыки
JavaScript
React
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию