Tut ngFor Richtlinie neu Rendern gesamte array auf jede mutation?

Sagen wir, wir haben ein array von Elementen:

items = [
    { title: 'item 1'},
    { title: 'item 2'},
    /* ... */
];

Und es ist eine Vorlage, macht dieses array:

<ul>
    <li *ngFor="let item of items">{{item.title}}</li>
</ul>

Wll angular2 rerender die ganze Palette wenn ich die Elemente hinzufügen/entfernen über push/splice oder wird es nur hinzufügen/entfernen der markup-Code für die entsprechenden Elemente? Wenn es nicht nur updates, dann gibt es einen Unterschied zwischen mutation stategies -- sollte ich lieber push/splice-over-array ersetzen? In anderen Worten, sind diese beiden Ansätze äquivalent im Begriff der rendering-Leistung:

/* 1: mutation */
this.items.push({ title: 'New Item' });

/* 2: replacement */
var newArray = this.items.slice();
newArray.push({ title: 'New Item' });

this.items = newArray;
InformationsquelleAutor admax | 2017-02-15
Schreibe einen Kommentar