在Angular中,管道(Pipes)可以按照指定的规则将模板内的数据进行转换。
管道种类:内置管道、自定义管道等
内置管道:
DataPipe,JsonPipe,UpperCasePipe,LowerCasePipe,DecimalPipe,CurrencyPipe,PercentPipe,SlicePipe
自定义管道:
import { Pipe,PipeTransform} from "@angular/core";
//定义元数据
@Pipe({
name:"XXX"
})
export class XXX implements PipeTransform{
transform(value){
//....
}
}
Angular管道有两种变化检测机制,即纯管道,非纯管道
纯管道:
纯变更是指对基本数据类型(String、Number、Boolean等)输入值的变更或对对象引用(Date、Array、Function、Object等)的更改。
变化机制策略是基于判断基本类型的数据值或者对象的引用是否被改变。对象引用的检测方式比遍历对象内部所有属性值的检测方式要快,Angular使用的是对象引用策略。
非纯管道:
Angular组件在每个变化检测周期都会调用非纯管道,并执行管道的transform()方法来更新数页面数据。
给管道添加pure:false将其定义为非纯管道。
@Pipe({
name:"XXX",
pure:false
})