Що робить Selector?
Selector у NgRx - це функція для отримання потрібних даних зі store.
Він не змінює стан, а просто дістає з нього те, що потрібно компоненту.
Приклад
Припустимо, у store лежить:
ts
{
user: { id: 1, name: 'Maria' },
cart: { items: [ ... ] }
}Щоб отримати лише ім'я користувача, пишуть:
ts
const selectUserName = createSelector(
state => state.user,
user => user.name
);А потім у компоненті:
ts
this.store.select(selectUserName).subscribe(name => {
console.log(name);
});Навіщо потрібні селектори
- Зручно. Не потрібно щоразу лізти вглиб store вручну.
- Перевикористовувано. Один селектор - у різних компонентах.
- Продуктивно.
createSelectorкешує результат і не викликає підписників, якщо дані не змінилися.
Висновок
Selector - це як фільтр: показує компоненту лише потрібний шматочок стану.
Store великий, але ти бачиш лише те, що важливо.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.