监听信号组件
title
阅读本节时请先理解computed
和watch
章节。
关于
计算信号组件是将computedObject
封装成信号组件,当computedObject
中的状态数据变化时,会自动触发信号组件的重新渲染。
而监听信号组件是将watchObject
封装成信号组件,当watchObject
中的状态数据变化时,会自动触发信号组件的重新渲染。
方法函数签名如下:
ts
interface SignalComponentType<State extends Dict>{
<Value=any, Scope=any >(render:SignalComponentRender,getter:AsyncComputedGetter<Value,Scope>):React.ReactNode
<Value=any, Scope=any >(render:SignalComponentRender,getter:ComputedGetter<Value,Scope>):React.ReactNode
<Value=any, Scope=any >(render:SignalComponentRender,builder: ObserverDescriptorBuilder<string,Value,Scope>):React.ReactNode;
}
监听信号组件
就如何计算信号组件是对computed
的封装一下,监听信号组件是可以实现watch
的封装。
ts
$<any>(
// 渲染函数
({value})=>{
return <div>{value}</div>
},
watch(({path,value},watchObj)=>{
return xxxx
})
)
以下是一个监听信号组件的示例:
- 上例中,我们使用
watch
来动态创建一个监听信号。 - 当状态中的
validate
变化时,我们计算出整个状态的有效性,然后将有效性的结果写入到validate
中,从而触发监听信号组件的重新渲染。