Skip to main content

Що означає нормалізація стану?

Нормалізація стану - це спосіб зберігати дані в стані (store, сервісі тощо) у вигляді пласкої, зв'язаної структури, а не як вкладені об'єкти.

Навіщо це потрібно: щоб спростити оновлення, пошук і синхронізацію між пов'язаними сутностями.

Приклад

Приклад без нормалізації:

ts
{ users: [ { id: 1, name: 'Maria', posts: [{ id: 10, title: 'Hello' }] } ] }

Якщо пост змінився, доводиться шукати його глибоко всередині масиву користувачів.

Після нормалізації:

ts
{ users: { 1: { id: 1, name: 'Maria', posts: [10] } }, posts: { 10: { id: 10, title: 'Hello' } } }

Тепер можна легко оновити конкретний пост за id без зачіпання всього дерева.

Ідея така сама, як у реляційній БД: кожна сутність - свій «табличний» словник (entities), а зв'язки виражаються через ідентифікатори.

Результат

  • простіше оновлювати й кешувати дані,
  • менше повторень,
  • чистіша логіка при синхронізації з сервером,
  • менше перемальовувань при змінах.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.