Що таке 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
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.