假设我有一个显示项目列表的组件
export class ListComponent implements OnInit{ public list:any; constructor(private _ls: ListService) {} ngOnInit() { this._ls.listLoad().subscribe((data) => { this.list = data['list']; }); } loadMore() { this._ls.listLoad(this.page).subscribe((data) => { this.list = this.list.concat(data['list']); this.page++; }); } }
我们有模板
<ul> <li *ngFor="let item of list; let index=index"> {{ item.name}} </li> </ul> <a (click)="loadMore()">Load more</a>
我想知道,当我们单击Load More链接并从服务器获取新项并附加到列表时,Angular 2是否会重绘完整列表或者只是在DOM中附加新项?
如果它重绘完整列表,是否有任何方法只添加新添加的项目. ChangeDetectionStrategy.OnPush可以在这种情况下有所帮助吗?
在我的情况下,我最初显示20个项目,每次点击加载更多附加20个项目到列表.我希望当用户加载更多项目时,他们可能会在列表中列出1000到2000个项目.如果Angular重绘每个附加的完整列表,可能会导致性能问题.
@ ngrx / store能否带来一些性能优势?