不应使用角度不纯的管道,但是如果使用它,则可能会影响性能,因为它们会在任何组件更改检测周期执行。
能不能告诉我使用不纯管道是唯一的解决方案还是最好的解决方案?
不应使用角度不纯的管道,但是如果使用它,则可能会影响性能,因为它们会在任何组件更改检测周期执行。
能不能告诉我使用不纯管道是唯一的解决方案还是最好的解决方案?
如果管道的输出依赖于管道的输入参数之外的其他值,则为
例如当您使用漂亮的管道来打印日期时:
...等等
管道取决于当前日期。因此,如果是23:59,又过了2分钟,所以又是第二天的00:01,则需要更新管道。相同的输入参数会产生其他输出
,一种不纯的管道,会触发值或参数的更改,使用它的最佳示例是Google转换器,例如,它会触发用户输入并转换为指定的目标语言
,如果我们看一下Angular自身不纯的内部管道,它们是:
所有这些都是不纯净的,因为它们将某种对象类型作为输入参数,因此从纯管道进行的典型更改检测不会启动管道。说得通。
但是,最重要的是,其中至少有两个主要用于调试目的(JSONPipe,KeyValuePipe)和切片……好..我不是很喜欢它,但它至少是一个轻量级的管道。
进行不纯净的管道IMO的关键成分是
文档: