2017-06-26 7 views
0

Ich habe eine Angular 2.x App, die Lodash in seinen Komponenten nutzt, und ich überlege, es auch in den Ansichtsvorlagen zu verwenden.Lodash in Angular Template Efficiency

Ich habe bemerkt, dass Angular fallen gelassen (in von 1.x auf 2.x Schalt) Unterstützung für einige seiner intensiveren Ansicht Vorlage Rohre (wie filter und orderBy) für "performance reasons," und es sagt jetzt „tun es in die Komponente."

Sollte Lodash in der Ansicht den gleichen Rat befolgen? Gibt es einen "Leistungsgrund", warum ich Lodash (oder vergleichbare Bibliotheken) nicht in der Ansicht verwenden sollte? Gibt es Zeiten, in denen es keinen Unterschied und Zeiten macht, dass es tut?

könnten einige Beispiel-Anwendung sein, die folgenden:

<div *ngIf="_.isEmpty(someVariable)"> 
    .... 
</div> 
<div *ngFor="let x of _.union(arrayOne, arrayTwo)"> 
    .... 
</div> 

Vielen Dank für jede Eingabe! Das fragliche Projekt ist Open Source und gehostet here.

+0

Winkeländerungserkennung ist das Leistungsproblem hier. Wenn Sie in der Ansicht den Befehl lashash api aufrufen, nennen Sie ihn in Ihrer Komponentenklasse. es ist sauberer und einfacher zu debuggen. –

Antwort

0

Die Verwendung der lodash-Funktion oder einer beliebigen Berechnungsfunktion für die Vorlagenbindung ist riskant.

Die Erkennung der Winkeländerung führt diese Funktion viel zu oft aus, als Sie es beabsichtigt haben, und dies kann zu Verzögerungen oder Endlosschleifen führen, stattdessen Variablen binden.

Trigger-Auslastung oder jede Berechnung auf Komponenten-Hooks ist viel effizienter.