====== Робота з LocalStorage у react ====== У додатках часто виникає задача зберігання значень у локальному сховищі, таких як обрані фільтри, вподобання теми і т. д. ===== Запис ===== - збережемо кількість кліків між перезавантаженнями сторінки. Кожного разу, коли змінюється значення стану clicks, компонент оновлюється, і ми можемо записати ефект. - У ефекті додаємо код запису в локальне сховище. Ключ - це довільний рядок, наприклад, "saved-clicks", а значення - це стан clicks. const App = () => { const [clicks, setClicks] = useState(0); useEffect(() => { window.localStorage.setItem("saved-clicks", clicks); }, [clicks]); return (
); };
===== Читання ===== Щоб прочитати значення з локального сховища, нам знадобиться не ефект, а щось цікавіше. Справа в тому, що ефекти виконуються асинхронно, після монтування компонента. Але нам потрібно синхронно прочитати значення з локального сховища, ще до монтування. Розберемося, як це зробити. Ми вже знаємо, що в хук useState можна передати початкове значення стану. const [clicks, setClicks] = useState(() => { // Зчитуємо значення за ключем const savedClicks = window.localStorage.getItem("saved-clicks"); // Якщо там щось є, повертаємо це // значення як початкове значення стану if (savedClicks !== null) { return savedClicks; } // У протилежному випадку повертаємо // яке-небудь значення за замовчуванням return 0; });