This media is not supported in your browser
VIEW IN TELEGRAM
В неё входят решения для работы с событиями браузера, состояниями, сетевыми запросами, таймерами и другими типовыми задачами. Всё реализовано аккуратно, понятно и готово к продакшну.
🔹 Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#stack #react
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6🥰4❤2
Когда копируете объект через {...obj}, вложенные структуры остаются по ссылке. Меняете копию → меняется оригинал.
Ограниченный, но быстрый для простых структур
const clone = (obj) => JSON.parse(JSON.stringify(obj));
Современный универсальный API (Chrome 98+, Firefox 94+, Node 17+, Safari 15+)
const clone = (obj) => structuredClone(obj);
const addItem = (newItem) => {
const clonedState = structuredClone(state);
clonedState.items.push(newItem);
setState(clonedState);
};
⚠️ Глубокое копирование — дорогая операция. В React его используют точечно, а не для всего состояния. В крупных приложениях лучше использовать immer или нормализованные структуры данных.
— Копирование вложенных объектов и графов
— Redux / Zustand, когда нельзя мутировать state
— Снимки данных перед трансформациями
— Копирование конфигураций, где нет функций и методов
🔹 Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
#readme #js #react
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🥰2
React_собес_30_вопросов_с_развёрнутыми_ответами.pdf
58.5 KB
Скачай, изучи, получи оффер
#readme #react
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🥱3👍1
Каждый проект проходит один и тот же путь. Сначала — кнопка переключения темы. Через месяц — система настроек.
Разница в том, что вы выбрали в первый день.
Состояние в браузере, API как у
useState:
const [theme, setTheme] = useLocalStorage('theme', 'dark')
- Одна настройка
- Прототип или MVP
- Нет планов масштабирования
- Ключи
localStorage расползаются по компонентам- Нет миграций при смене структуры
- Рассинхронизация состояния между вкладками
Это не баг. Это предел подхода.
Когда добавляются язык, feature flags, пользовательские настройки — нужен единый стор:
const theme = useSettings(s => s.theme)
const setTheme = useSettings(s => s.setTheme)
- Один источник правды
- Селекторы → меньше ререндеров
- Миграции версий состояния из коробки
- Синхронизация между вкладками
- +1 зависимость
- 20-30 строк на стор вместо 3 на хук
- Архитектура, которая не разваливается через полгода
- 1 настройка →useLocalStorage
- 2-3 настройки → можно ещё потерпеть
- Система настроек →zustandсразу
localStorage — это инструмент. zustand — это способ не переписывать проект через полгода.#readme #react
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤3🥰2🥱1