当你有id的数据时,你如何使用ngrx / store?

时间:2017-06-03 16:27:23

标签: hashmap uuid ngrx-store

我们说我们有一个包含100个英雄的列表。每个英雄都有一个id和一个名称属性,因此英雄模型将是:

interface Hero {
  id: string;
  name: string;
}

我想使用带有哈希映射(字典)数据结构的ngrx / store来快速访问单个英雄。因此,英雄店将具有结构Observable<{[heroId: string]: Hero}>

然后在我的hero-component中我想通过id加载英雄,所以它看起来像:

<app-hero [heroId]="25"></app-hero>

并在控制器中:

heroStore.subscribe(updatedStore => {
  this.hero = updatedStore[this.heroId];
}

这有效,但对我来说似乎并不理想,因为当只更新一个英雄时,在所有100个组件中,会触发订阅侦听器。

  1. 这会对性能产生负面影响吗?
  2. 有比这更好的方法吗?
  3. 我考虑过将Observable<Hero>放入商店而不仅仅是Hero,因此商店看起来像Observable<{[heroId: string]: Observable<Hero>}>

    然后像:

    heroStore.getValue()[heroId].subscribe(hero => {
      this.hero = hero;
    });
    

    是可能的。但话说回来,这似乎有点疯狂。建议的方式是什么?或者更具体地说:如何使用ngrx / store 处理哈希映射资源商店?

0 个答案:

没有答案