@Pipe({name:'myPipe', pure: false})
Nie mogę zrozumieć nieczystych rur, niektóre z nich są lepsze w przypadku rur czystych.Co to jest zanieczyszczona rura w Angular?
Proszę wyjaśnić mi za pomocą prostego i podstawowego przykładu?
@Pipe({name:'myPipe', pure: false})
Nie mogę zrozumieć nieczystych rur, niektóre z nich są lepsze w przypadku rur czystych.Co to jest zanieczyszczona rura w Angular?
Proszę wyjaśnić mi za pomocą prostego i podstawowego przykładu?
Czysta rura jest wywoływana tylko wtedy, gdy kątowy wykrywa zmianę wartości lub parametry przekazywane do rury. Nieczysta rura jest wywoływana dla każdego cyklu wykrywania zmian, bez względu na to, czy wartość lub parametry ulegną zmianie.
Jest to istotne dla zmian, które nie są wykrywane przez kątowe
Te przypadki prawdopodobnie nadal wymagają wykonania rury.
Należy mieć świadomość, że zanieczyszczone rury są podatne na nieefektywność. Na przykład, gdy tablica jest przekazywana do potoku w celu filtrowania, sortowania, ... to działanie może być wykonywane za każdym razem, gdy uruchamiane jest wykrywanie zmian (co jest dość często z domyślnym ustawieniem ChangeDetectionStrategy
), chociaż tablica może nawet nie mieć zmienione. Twoja rura powinna spróbować to rozpoznać i na przykład zwrócić wyniki z pamięci podręcznej.
Czy możesz wyjaśnić mi przykład? –
Przykład, aby pokazać, co dokładnie? http://stackoverflow.com/a/37828164/217408 pokazuje rurkę filtrującą (ale bez buforowania). –
Czysta rura oznacza, że będzie wykonywana za każdym razem, gdy ktoś zmieni przekazany do niej sygnał wejściowy. Na przykład '{{2 | wykładnik: var}}; . Teraz, gdy zmieniamy wejście 'var', to wartość jest aktualizowana. Podobnie, zaktualizuj moją wartość przez nieczysty rurociąg. Ktoś??Tutaj 'wykładnik' to moja rura –
Oprócz poprzedniej odpowiedzi chcę dodać kolejną różnicę: liczbę instancji.
Załóżmy, że potok jest używany kilka razy w kodzie HTML. Jak:
<p> {{'Hello' | translate }}<p>
<p> {{'World' | translate }}<p>
(widać to poprzez generowanie losowy identyfikator w konstruktorze rury i wydrukować go w obu: constructor
i transform
metody)
postaci czystych potoków (lub ogólnie czystych funkcji) jest (powinien) nie ma żadnych skutków ubocznych, ten sam czysty kod może być ponownie użyty dowolną liczbę razy bez zmartwień. Wygląda na to, że czyste rury są tworzone tylko raz.
OBS: obowiązuje w moim środowisku kątowym 4.0.
przeczytaj [Zasadnicza różnica między czystymi i nieczystymi rurami i dlaczego to ma znaczenie] (https://medium.com/@maximus.koretskyi/the-essential-difference-between-pure-and-impure-pipes-and -Dlaczego-tamto-999818aa068), który wyjaśnia szczegóły kryjące się za różnicą i bada leżący u podstaw modelu mentalnego. –