假设我们有一系列项目:
items = [
{ title: 'item 1'},
{ title: 'item 2'},
/* ... */
];
Run Code Online (Sandbox Code Playgroud)
并且有一个呈现此数组的模板:
<ul>
<li *ngFor="let item of items">{{item.title}}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
如果我通过push/ 添加/删除项目,splice或者只添加/删除相应项目的标记,那么angular2会重新渲染整个数组吗?如果它只是更新,那么变异stategies是否有任何区别 - 我是否更喜欢推/拼接而不是阵列替换?换句话说,这两种方法在渲染性能方面是否相同:
/* 1: mutation */
this.items.push({ title: 'New Item' });
/* 2: replacement */
var newArray = this.items.slice();
newArray.push({ title: 'New Item' });
this.items = newArray;
Run Code Online (Sandbox Code Playgroud)