> Какие типы пайпов бывают в Angular и в чем разница между pure и impure пайпами? (Angular)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: LeverX
Стек: Angular
> Пример ответа
В Angular существует два основных типа пайпов: pure (чистые) и impure (нечистые). По умолчанию все встроенные пайпы (например, DatePipe, UpperCasePipe, CurrencyPipe) являются чистыми.
Pure pipe (чистый пайп) - это пайп, который не имеет побочных эффектов и возвращает одинаковый результат для одних и тех же входных данных. Angular пересчитывает чистый пайп только при изменении самого значения (примитива) или ссылки на объект (для объектов и массивов). Это повышает производительность, так как пайп не вызывается при каждой проверке изменений, а только когда реально изменились входные данные.
Impure pipe (нечистый пайп) - вызывается при каждом цикле обнаружения изменений (change detection), независимо от того, изменились ли входные данные. Для создания нечистого пайпа нужно добавить свойство pure: false в декоратор @Pipe.
Пример:
TYPESCRIPT@Pipe({name: 'myImpurePipe',pure: false})export class MyImpurePipe implements PipeTransform { ... }
Нечистые пайпы полезны, когда нужно реагировать на изменения внутри объекта или массива (например, фильтрация списка, который может мутировать без изменения ссылки), но их следует использовать с осторожностью из-за потенциальных проблем с производительностью.
Ключевая разница: чистые пайпы оптимизированы и вызываются реже, нечистые - вызываются часто, но позволяют отслеживать внутренние изменения данных.
> Похожие задачи по frontend
Является ли изменение пропсов триггером ререндеринга в React
Что такое компоненты, модули, сервисы, интерцепторы и директивы в Angular?
Что такое Lifecycle Hooks в Angular и какие из них используются?
Как добавить обработчик события на DOM-элемент в React?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью