我开始关注ngrx Store,看到使用Angular异步管道的便利性.同时我不确定是否大量使用Angular异步管道是一个不错的选择.
@H_403_28@我举一个简单的例子.让我们假设在同一模板中我需要显示从Store检索的对象(例如Person)的不同属性.
一段模板代码可以
<div>{{(person$| async).name}}</div> <div>{{(person$| async).address}}</div> <div>{{(person$| async).age}}</div>
而组件类构造函数将具有
export class MyComponent { person$: Observable<Person>; constructor( private store: Store<ApplicationState> ) { this.person$= this.store.select(stateToCurrentPersonSelector); } ..... ..... }
据我所知,这段代码暗示了3个订阅(通过异步管道在模板中制作)到同一个Observable(person $).
另一种方法是在MyComponent中定义1个属性(person),并且只有1个用于填充属性的预订(在构造函数中),例如
export class MyComponent { person: Person; constructor( private store: Store<ApplicationState> ) { this.store.select(stateToCurrentPersonSelector) .subscribe(person => this.person = person); } ..... ..... }
而模板使用标准属性绑定(即没有异步管道),例如
<div>{{person.name}}</div> <div>{{person.address}}</div> <div>{{person.age}}</div>
现在问题
这两种方法在性能方面有什么不同吗?大量使用异步管道(即大量使用订阅)是否会影响代码的效率?
感谢任何指导