Angular 中计算信号和 getter 的区别

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

信号是 Angular 中的一项前沿功能。
但问题引起了这两者之间有什么区别

computed(() => `Result: ${this.someSignal()}`)

get someGetter () { return `Result: ${this.someSignal()}` }

首先我认为当选择

ChangeDetectionStrategy.OnPush
时 getter 可能不会运行,但事实并非如此。

这是一个示例,两者的工作原理相同 https://stackblitz.com/edit/github-s2epxq?file=src%2Fmain.ts

那么有什么区别,我们真的应该优先选择其中一个吗?

javascript angular signals
1个回答
1
投票

你的吸气剂不会返回信号,它不是反应性的。

只有反应性节点才会成为反应性树的一部分,并帮助 Angular 了解值在哪里发生变化以及哪个组件受其影响。

计算值也会被记忆,直到其中一个生产者变脏为止,它们不会被重新执行。

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