angular - .select 上的 rxjs/ngrx 多播

标签 angular rxjs ngrx multicast ngrx-store

@Component 中,我应该始终多播 .select(myCustomSelector) 吗?

例如

this.store.select(myCustomSelector).pipe(share());

否则每次我执行async时,它都会创建一个新的订阅。或者因为选择器已被内存,所以可以吗?

我想知道什么是好的做法。

最佳答案

不,您不应该将 share().select() 一起使用

但这取决于您使用的商店实现。

在 ngrx、ngxs、akita 中,存储由对象支持,因此从 select 返回的 observable 不会触发任何副作用。

然后通过reducer更新存储,然后所有选择都将获得新值,但由于它们都在这个单个对象(状态)上工作,因此不会出现性能问题。

关于angular - .select 上的 rxjs/ngrx 多播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53262500/

相关文章:

angular - Angular2 中的 404 页面和延迟加载

angular - 如何将 httpClient 注入(inject)到实例化服务中?

html - Angular - 如何使用 [ngstyle] 将对象动态传递给 div 元素

Angular 2.2 和 SystemJS : deploy RXJS

angular - 是否可以订阅 Angular 组件中的局部变量?

javascript - 在 RxJS 运算符中调用异步操作

angular - 如何使用带有参数的选择器从效果中的ngrx存储中选择

angular - 如何从远程 API 服务填充 Material 选择下拉列表?

javascript - 如何使用 Angular 5 中的 ngrx 状态仅更新一个对象属性或数组中的多个对象属性?

Angular 2,在@ngrx/effects 中捕获 401