我看过官方文档和很多抒情博客。尽管如此,我仍然不明白为什么这么大惊小怪。我明白什么是linkedSignal
和computed
是什么。我不明白的是它们有什么不同。
据说后者的局限性在于它不可写。没错。但是前者以什么方式可写呢?我们做不到linky.set("shazoo")
,对吧?它只能对另一个信号的变化做出反应,然后向其消费者产生重新计算的值。然而,这正是另一个所做的。
Angular 18:使用计算信号。
export class Angy18 {
...
siggy = signal(1);
compy = computed(() => siggy() * 2);
}
Angular 19:使用链接信号。
export class Angy19 {
...
siggy = signal(1);
linky = linkedSignal({
source: this.siggy;
computation: () => siggy() * 2);
});
}
在我看来,唯一的区别似乎就是需要冗长的多行语法。我确信链接信号的增益在其他地方。我遗漏了什么?
我们可以。
顺便说一下,简单形式也是可用的:
新的
linkedSignal
服务用于声明可写的本地状态它是可写的并且还提供
previous
值。