Pipe transform dữ liệu trong template. Mặc định pipe là pure: Angular chỉ gọi lại khi primitive value đổi hoặc object/array reference đổi, nên hiệu năng tốt hơn.
Ví dụ custom pure pipe:
@Pipe({ name: "kebabCase" })
export class KebabCasePipe implements PipeTransform {
transform(value: string): string {
return value.toLowerCase().replaceAll(" ", "-")
}
}Impure pipe pure: false có thể bắt mutation bên trong object/array nhưng chạy rất thường xuyên, dễ gây chậm UI.
Trong phỏng vấn nên nói: ưu tiên pure pipe, immutable data, hoặc computed() thay vì impure pipe.
A pipe transforms data in a template. Pipes are pure by default: Angular reruns them only when a primitive changes or an object/array reference changes, which is better for performance.
Custom pure pipe example:
@Pipe({ name: "kebabCase" })
export class KebabCasePipe implements PipeTransform {
transform(value: string): string {
return value.toLowerCase().replaceAll(" ", "-")
}
}An impure pipe with pure: false can observe mutations inside objects/arrays, but it runs very often and can slow down UI.
In interviews, prefer pure pipes, immutable data, or computed() over impure pipes.