我想知道关于 transloco 在其指令中使用的“t”函数的问题。
当我们在 Angular 模板中使用函数时,比如说,显示用户电子邮件。所以我们写这样的东西:
<div>
{{getUserEmail()}}
</div>
根据我对角度的了解,除非您采用 OnPush 检测策略,否则每次更改检测都会调用此函数。这就是为什么建议尽可能使用管道,因为它们不会出现此问题。
所以我的问题是,transloco 的 't' 函数是否每次都能避免这个调用?还是我误解了 transloco/Angular?
附注我知道该函数已被记忆,但如果不调用每个更改检测,它仍然会更好。
我正在考虑使用 transloco 管道,主要是因为在我看来,在应用程序中拥有更多订阅比多次调用“t”函数更好。也许我的认知是错误的?
根据 transloco 文档,使用结构指令和
t()
函数甚至是推荐的方法:
https://jsverse.github.io/transloco/docs/translation-in-the-template#structural-directive
使用结构指令是推荐的方法。它干燥且高效,因为它为每个模板创建一个订阅。
请注意,t 函数已被记忆。这意味着给定相同的密钥,它将直接从缓存返回结果。