Skip to main content

Що таке EntityAdapter в NgRx?

EntityAdapter у NgRx - це помічник, який спрощує роботу з колекціями об'єктів (наприклад, список користувачів, товарів або постів).

Замість того щоб писати купу логіки вручну для:

  • додавання,
  • оновлення,
  • видалення елементів за id,

ти використовуєш готові методи.

Як це працює:

Припустимо, у тебе є список користувачів.

Замість того щоб зберігати їх як масив, EntityAdapter перетворює це на структуру:

ts
{ ids: [1, 2, 3], entities: { 1: { id: 1, name: 'Maria' }, 2: { id: 2, name: 'Oleh' }, 3: { id: 3, name: 'Alice' } } }

Це робить оновлення швидкими та зручними.

Що дає EntityAdapter:

  • addOne(entity)
  • addMany([...])
  • updateOne({ id, changes })
  • removeOne(id)
  • setAll([...])

Усі ці методи одразу правильно оновлюють ids і entities.

Приклад:

ts
const adapter = createEntityAdapter<User>(); const initialState = adapter.getInitialState({ loaded: false }); const reducer = createReducer( initialState, on(loadUsersSuccess, (state, { users }) => adapter.setAll(users, { ...state, loaded: true })) );

Висновок: EntityAdapter - це інструмент, який перетворює колекції на зручну структуру і дає набір методів для керування ними. Ти менше пишеш вручну і робиш менше помилок.

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

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

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