¿La directiva ngFor vuelve a representar toda la matriz en cada mutación?
Digamos que tenemos una variedad de artículos:
items = [
{ title: 'item 1'},
{ title: 'item 2'},
/* ... */
];
Y hay una plantilla que representa esta matriz:
<ul>
<li *ngFor="let item of items">{{item.title}}</li>
</ul>
Wll angular2 rerenderá toda la matriz si agrego / elimino elementos a través depush
/splice
o solo agregará / eliminará el marcado de los elementos correspondientes? Si solo actualiza, entonces, ¿hay alguna diferencia en las estrategias de mutación? ¿Debería preferir la inserción / empalme en lugar del reemplazo de la matriz? En otras palabras, ¿son estos dos enfoques equivalentes en términos de rendimiento de representación:
/* 1: mutation */
this.items.push({ title: 'New Item' });
/* 2: replacement */
var newArray = this.items.slice();
newArray.push({ title: 'New Item' });
this.items = newArray;