信号是 Angular 中的一项前沿功能。
但问题引起了这两者之间有什么区别
computed(() => `Result: ${this.someSignal()}`)
和
get someGetter () { return `Result: ${this.someSignal()}` }
首先我认为当选择
ChangeDetectionStrategy.OnPush
时 getter 可能不会运行,但事实并非如此。
这是一个示例,两者的工作原理相同 https://stackblitz.com/edit/github-s2epxq?file=src%2Fmain.ts
那么有什么区别,我们真的应该优先选择其中一个吗?
你的吸气剂不会返回信号,它不是反应性的。
只有反应性节点才会成为反应性树的一部分,并帮助 Angular 了解值在哪里发生变化以及哪个组件受其影响。
计算值也会被记忆,直到其中一个生产者变脏为止,它们不会被重新执行。