You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular管道记忆化:缓存参数集结果还是仅检测参数变化重计算?

Angular管道的记忆化缓存机制解析

Angular里的纯管道(默认创建的管道类型)是基于输入值+参数的组合来缓存转换结果的,并非仅检测参数变化就重新执行逻辑。

具体逻辑如下:

  • 纯管道会将每次的输入值、管道参数与对应转换结果存入缓存
  • 只有当输入值或参数发生实质变化(基本类型看值是否改变,引用类型看引用地址是否变更)时,才会重新调用转换函数计算新结果
  • 若遇到之前已处理过的输入+参数组合,会直接复用缓存中的结果,跳过重复计算

拿你举的奇偶转换管道例子来说:当输入在0和1之间反复切换时,由于0和1都是已缓存过的输入值,Angular不会每次都执行判断奇偶的逻辑,而是直接取出之前缓存好的"even"(对应0)和"odd"(对应1)输出。

另外需要注意,非纯管道(声明时添加pure: false)没有缓存机制,每次Angular触发变更检测时,不管输入和参数有没有变化,都会重新执行转换函数。

内容的提问来源于stack exchange,提问作者lukasniessen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 08:22:31