Angular Signal.update疑问:兄弟组件未更新的原因及使用意义探讨
关于 Angular Signal.update 的疑问
我有个疑问:如果使用signal.update时无法触发所有使用该signal的effect或视图组件的变更检测,那signal.update的意义何在?
我做了一个简单案例:有两个兄弟组件:
<app-child1></app-child1> <app-child2></app-child2>
情况1:仅更新对象属性,Child2视图不更新
在Child1中调用update仅修改对象的属性值,此时Child2的视图并未更新:
execute(value: number): void { this.signal.update((data) => { data.property1 = value; data.property2 = value; return data; }); }
情况2:返回全新对象,Child2视图更新
调用update时返回一个全新的对象(打破原有引用),Child2的视图会更新:
executeSet(value: number): void { const data = { property1: value, property2: value }; this.signal.update((_) => data); }
情况3:使用set方法传入全新对象,Child2视图更新
直接用set方法传入全新对象,Child2的视图同样会更新:
executeSet(value: number): void { const data = { property1: value, property2: value }; this.signal.set(data); }
这种行为让我十分困惑,想了解signal.update的实际意义是什么?
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

