watch(
() => {return props.value},
async () => {
const rect = await getRect()
// 其他操作
onther(rect )
},
{
immediate: true,
}
)
上面的代码是有一点问题,getRect() 会在 props.value 发生改变时执行,props.value 会频繁改变,而 getRect() 只需要全局执行一次就可以了,以上的代码会导致 getRect() 多次执行。
并且需要要求 onther(rect) 在首次执行时必须被执行,不能被跳过。
const rect = ref()
getRect(() => {
rect.value = rect
})
watch(
() => {return props.value},
async () => {
if(!rect.value) return
// 其他操作
onther(rect )
},
{
immediate: true,
}
)
这样也不是不行的
除了在 getRect() 内使用缓存外,有没有比较好的模式来解决这个问题?