@ngrxStore createSelector - Могу ли я вызвать createSelector вручную? это плохо? - PullRequest
0 голосов
/ 06 сентября 2018

Скажите, у меня есть селектор

let getCount = createSelector(countState, (count) => {count ? count : 0 });

let myChecks: Observable<{
checkThis: boolean,
checkThat: boolean,
count: string}>


this.myChecks = this.store.select(state => {
  ... somelogic

    return {
       checkThis = somelogic.checkThis;
       checkThat = somelogic.checkThat;
       count = getCount(state)
    }
  });

Учитывая, что у меня нет селекторов для всего, приведенный выше пример плох? Могу ли я просто сказать getCount (состояние) внутри select вместо непосредственного использования в select?

1 Ответ

0 голосов
/ 16 сентября 2018

Лучше использовать селекторы, потому что они запоминаются.

При использовании createSelector и createFeatureSelectorfunctions @ ngrx / store отслеживает последние аргументы, в которых ваш селектор функция была вызвана. Поскольку селекторы являются чистыми функциями, последний результат может быть возвращен, когда аргументы совпадают без повторного вызова Ваша функция выбора. Это может обеспечить выигрыш в производительности, особенно с селекторами, которые выполняют дорогие вычисления. это практика известна как запоминание.

NgRX Docs

...