I am starting to look at ngrx Store and I see the convenience to use the Angular async pipe. At the same time I am not sure whether using the Angular async pipe massively is
Neither, you should compose your application as smart and presentation components.
Advantages:
Answering the last question:
The massive use of async pipe will affect the efficiency, because it will subscribe to every async pipe. You can notice this more if you are calling a http service, because it will call the http request for each async pipe.
Smart Component
@Component({
selector: 'app-my',
template: `
`,
styleUrls: ['./my.component.css']
})
export class MyComponent implements OnInit {
person$: Observable;
constructor(private store: Store) {}
ngOnInit() {
this.person$ = this.store.select(stateToCurrentPersonSelector);
}
}
Presentation Component
@Component({
selector: 'app-person',
template: `
{{person.name}}
{{person.address}}
{{person.age}}
`,
styleUrls: ['./my.component.css']
})
export class PersonComponent implements OnInit {
@Input() person: Person;
constructor() {}
ngOnInit() {
}
}
For more info check: