RxJs采摘vs NgRx选择

时间:2019-06-20 16:53:49

标签: angular rxjs ngrx

我正在开发具有NgRx商店的Angular应用程序,并具有在视图和商店之间进行中介的服务。当我编写函数以检索商店的一部分时,我倾向于使用NgRx的select运算符:

getSomeInfoFromStore(): Observable<SomeInfo> {
  return this.store.pipe(select('SomeInfo'));
  // --------------------^^^^^^
}

但是我也看到了使用RxJs的'pluck'运算符编写的类似服务功能:

getSomeInfoFromStore(): Observable<SomeInfo> {
  return this.store.pipe(pluck('SomeInfo'));
  // --------------------^^^^^
}

RxJs's pluck operatorNgRx's select operator有什么区别?它们可以互换吗?如果没有,我应该何时使用它们?

1 个答案:

答案 0 :(得分:0)

在您的示例中,它执行相同的AFAIK。

不同之处在于NgRx的select可以利用选择器,而选择器是真正的力量所在。 通过使用createSelector方法创建选择器,可以提高性能,因为只有在状态更改时才会调用它。

https://ngrx.io/guide/store/selectors