Angular 19+能否创建依赖两个信号的linkedSignal?
Angular 19+ 中使用 linkedSignal 依赖多个信号
当然可以让 linkedSignal 同时依赖多个信号。linkedSignal 的核心机制是自动追踪其 computation 函数内部读取的所有信号——只要你在计算逻辑中访问了多个信号,linkedSignal 就会自动将它们纳入依赖列表,当其中任意一个信号的值发生变化时,都会触发计算逻辑重新执行。
以下是依赖两个信号的示例代码:
import { signal, linkedSignal } from '@angular/core'; const sourceSignal1 = signal(10); const sourceSignal2 = signal(20); const updatedSignal = linkedSignal({ source: sourceSignal1, computation: () => { // 读取两个信号的值,自动建立依赖关系 return sourceSignal1() + sourceSignal2(); }, });
需要注意的是,linkedSignal 的 source 参数仅需指定一个基础信号即可,Angular 信号系统会自动捕获 computation 中访问的所有额外信号作为依赖。如果只是单纯需要基于多信号的计算值,signal.computed() 也是常用方案,但 linkedSignal 更适合需要双向关联(写入操作同步回源信号)的场景。
内容的提问来源于stack exchange,提问作者Denis
相关产品推荐
相关产品推荐

