PIPES (чистый) лучше, чем встроенный тернарный оператор или вызов функции, UMMM !!
Почему: -
Потому что каналы более оптимизированы, чем данные два. С Pipes, angular будет отображаться в более быстром темпе.
Причина: -
Основная причина - детерминированность c природа трубы. Это означает, что если я определю функцию , которая не имеет внутреннего состояния, чем с заданными - теми же входными параметрами -, функция всегда будет генерировать - тот же выход -. И это позволяет Angular оптимизировать и вызывать transform method
только при изменении входных параметров.
Элементарный пример: - У нас есть функция square () , которая принимает одно значение и дает возведенное в квадрат значение функции ввода
: -
add(val): number{
return val*val;
}
И это наш список входов 3, 5, 6, 6, 6, 5, 4, 3, 4, 5
. (всего 10 раз)
Но angular вызовет внутренний код функции для 3, 5, 6, 4. (вызывается только 4 раза).
почему? Поскольку он сохраняет копию результата для каждого ввода, и если он снова видит тот же ввод, он возвращает вывод, не выполняя внутренних вычислений нашей функции add (). Чем в этом случае angular не будет использовать внутренний код нашей функции добавления
REAL world Case для вашего примера user.id === 0? 'Teacher': 'Study'
Для таких вычислений, как этот простой тернарный оператор, может выиграть, потому что в этом примере конвейеры могут быть излишними.
ПРИМЕЧАНИЕ: - Приведенная выше информация применима только к чистым трубам, а не нечистым .