嗨,我怀疑我使用的是输入信号而不是@Input,我从父组件发送数据,一个作为简单变量,另一个作为信号
name = "ajai" name=signal("ajai")
两者都在工作,这两个语句有什么区别。我认为 input() 是一个信号,它只接受信号,但它接受普通字符串和效果也被触发如何?
我想知道使用 name = "ajai" 或 name=signal("ajai") 的最佳方式以及何时使用 name = "ajai" 或 name=signal("ajai")。
name=signal("ajai")
fullName = computed(() => (`Grand Master ${this.name()}`);
在上面的示例中,对
name
的更新会通知 name
的消费者,例如 fullName
,这是从原始状态 name
派生的状态。
因此信号的优点是它们是反应性的,对实际值的更改会触发其他反应性元素(
computed
,effect
,resource
,rxResource
,linkedSignal
)的自动更新,并使您的代码仅在实际需要时更新,而不是一直更新。
为了充分利用信号。考虑启用
ChangeDetectionStrategy.OnPush
,以便更改检测不会多次触发。
name = "ajai"
它们可以存储值,但不会通知其他使用这些变量进行计算的块。
它们在每个变更检测周期进行更新,请注意,更新这些属性不会触发变更检测,而是角度预信号,在应用程序生命周期内多次触发变更检测。