のカスタムセレクターに@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
ですか?
洞察を事前に感謝します。