NgRx 中 select 和没有 select 有什么区别?

What difference between select and without select in NgRx?

我在订阅店铺状态时通常使用两种方式。 它们之间有什么区别吗(比如性能什么的)

constructor(private store : Store<MyState>){
    //1
    this.store.pipe(select(x=>x.myComplexObject)).subscribe(x=> {
        this.data = x;
    })
    //2
    this.store.subscribe(x=> {
        this.data = x.myComplexObject;
    })
}

两者是一样的。 但是,我建议改用 selectors,因为它们有几个优点:

  • 可以组合多个选择器
  • 易于测试
  • 高性能,因为它被记忆了

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