11

カスタムセレクター@ngrx出くわしたばかりで、その機能に驚かされることはありません。

のユースケースに従って、次のようなカスタムセレクターを使用する正当なbooks理由selectedUserを与えることはできません。

export const selectVisibleBooks = createSelector(selectUser, selectAllBooks, (selectedUser: User, allBooks: Books[]) => {
    return allBooks.filter((book: Book) => book.userId === selectedUser.id);
});

次のようなものの代わりに:

export const selectVisibleBooks = Observable.combineLatest(selectUser, selectAllBooks, (selectedUser: User, allBooks: Books[]) => {
    return allBooks.filter((book: Book) => book.userId === selectedUser.id);
});

のメモ化が重要な部分であることを自分自身に納得させようとしましたcreateSelectorが、私が理解している限り、非プリミティブ値に対してこれらのパフォーマンス向上を実行することはできないため、非プリミティブ スライスの計算を実際に節約することはできませんRx。のdistinctUntilChanged演算子はcombineLatest解決できます。

では、何を見逃したのですか?なぜ使用する必要があるの@ngrx/selectorですか?

洞察を事前に感謝します。

4

1 に答える 1