Если в стейте компонента хранятся вложенные объекты, React не сможет понять, что они не изменились, даже если вы не меняли их вручную. Это может привести к лишним ререндерам.
📌 Решение: используйте
Object.freeze() для вложенных структур, чтобы избежать случайных мутаций и упростить сравнение.
const initialFilters = Object.freeze({
category: 'all',
priceRange: [0, 100],
});
const [filters, setFilters] = useState(initialFilters);
⚠️ Замороженный объект нельзя мутировать — это делает поведение более предсказуемым.
💡 Также
freeze улучшает производительность при использовании React.memo или useMemo, так как ссылки на вложенные структуры остаются стабильными.👀 Подходит для конфигов, словарей, фильтров и других редко изменяемых объектов.
📲 Мы в MAX
✍️ @React_lib