Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Що означає іммутабельність у контексті NgRx?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**Іммутабельність** у NgRx - це правило, за яким стан не можна змінювати напряму: reducers завжди повертають нову копію стану зі змінами. **Ключове:** іммутабельність дає передбачуваність, підтримку DevTools і time-travel та точнішу оптимізацію оновлень.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення**Іммутабельність** у контексті NgRx - це правило: **стан не можна змінювати напряму**, можна лише створювати **новий** на основі старого. ### Що це означає на практиці: Погано (мутуємо): ```ts state.user.name = 'Maria'; // змінюємо прямо в об'єкті return state; ``` Добре (іммутабельно): ```ts return { ...state, user: { ...state.user, name: 'Maria' } }; ``` Ми не чіпаємо старий стан - створюємо **нову копію зі змінами**. ### Навіщо це потрібно: 1. **Передбачуваність.** Старий стан завжди залишається доступним. Немає "магічних" змін. 2. **DevTools і time-travel.** Можна легко відкочувати стан назад і бачити, що змінилося. 3. **Оптимізація.** Angular і селектори бачать, що об'єкт змінився (за посиланням), і оновлюють лише потрібні частини. ### У NgRx: - Reducers **зобов'язані бути іммутабельними** - вони завжди повертають новий стан. - Якщо щось мутувати, можна отримати баги, які складно відстежити. **Висновок:** Іммутабельність - це правило "не ламати, а створювати заново". У NgRx воно забезпечує чистоту, прозорість і стабільність.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.