Skip to main content

Що робить 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); });

Навіщо потрібні селектори

  1. Зручно. Не потрібно щоразу лізти вглиб store вручну.
  2. Перевикористовувано. Один селектор - у різних компонентах.
  3. Продуктивно. createSelector кешує результат і не викликає підписників, якщо дані не змінилися.

Висновок

Selector - це як фільтр: показує компоненту лише потрібний шматочок стану. Store великий, але ти бачиш лише те, що важливо.

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

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

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