Performance: TransferState for data sharing
MEDIUM IMPACT
TransferState affects the initial page load speed by reducing duplicate HTTP requests between server and client.
constructor(private transferState: TransferState, private http: HttpClient) {}
ngOnInit() {
const saved = this.transferState.get(DATA_KEY, null);
if (saved !== null) {
this.data = saved;
this.transferState.remove(DATA_KEY);
} else {
this.http.get('/api/data').subscribe(data => {
this.data = data;
this.transferState.set(DATA_KEY, data);
});
}
}ngOnInit() {
this.http.get('/api/data').subscribe(data => this.data = data);
}| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Duplicate HTTP fetch on server and client | Minimal | 1 reflow after data loads | Medium paint cost due to delayed content | [X] Bad |
| Using TransferState to share data | Minimal | Single reflow on server render | Lower paint cost due to faster content display | [OK] Good |