使用 getter 时可以优化 Angular 模板中的信号使用吗?

问题描述 投票:0回答:1

我有一个通过 getter 公开信号的服务。 getter 直接在 HTML 模板中使用,但我担心性能。由于 Angular 的更改检测在每次重新渲染时都会调用 getter,我怀疑这可能会导致效率低下。

这是我当前的实现: 服务:

signal = signal();
getSignal() {
  return this.signal;
}

模板:

<h1>
  {{ service.getSignal()() }}
</h1>

我的问题是:

  • 在这种情况下使用 getter 是否效率低下,因为它会在每次重新渲染时重新计算?
  • 可以通过将信号存储在类变量中或其他方法来避免这个问题吗?
  • Angular 是否在内部对此进行了优化,从而使这不再是问题?
angular optimization signals
1个回答
0
投票

你没有 getter,getter 是 get+space+name()

get Signal() {
  return this.signal;
}

由于 Angular 中的缺陷是公共变量,因此您可以在组件中写入(始终服务

service
是公共的)

{{service.signal()}}

如果您的服务是私有的,您可以创建一个吸气剂,但是在组件中

get signalService()
{
    return this.service.signal()
}

并使用

 {{signalService}}

确实,吸气剂在性能中具有不稳定性相关性

© www.soinside.com 2019 - 2024. All rights reserved.