0
点赞
收藏
分享

微信扫一扫

STL中list的模拟实现

DT_M 2024-05-31 阅读 9

watch的侦听数据源类型

watch的第一个参数为侦听数据源,有4种"数据源":

ref(包括计算属性)

reactive(响应式对象)

getter函数

多个数据源组成的数组。

//ref
const x=ref(0)

//单个ref
watch(x,
(newX)=>{
console.log(`x is ${newX}`)
})
//getter函数
const x = ref(0)
watch(
()=> x.value,
(newX)=>{
console.log(`x is ${newX}`)
}
)

//getter函数
const obj = reactive({count:0})
watch(
()=> obj.count,
(count)=>{
console.log(`count is ${count}`)
}
)
//reactive  隐式创建一个深层侦听器

const obj = reactive({count:0});
watch(obj,
(newV,olbV)=>{
// 在嵌套的属性变更时触发
// 注意:`newV` 此处和 `oldV` 是相等的
// 因为它们是同一个对象!
},
)

//或者
watch(
()=>obj.count,
()=>{
// 仅当 obj.count被替换时触发
}
)
// 多个来源组成的数组
const x=ref(0)
const y=ref(0)

watch([x, () => y.value], ([newX, newY]) => {
console.log(`x is ${newX} and y is ${newY}`)
})

watch属性:

{ deep: true }  //强制转成深层侦听器,

深度侦听需要遍历被侦听对象中的所有嵌套的属性,当用于大型数据结构时,开销很大。因此请只在必要时才使用它,并且要留意性能。

{ immediate: true } //强制侦听器回调立即执行

{ once: true } // 3.4+,回调只在源变化时触发一次

举报

相关推荐

0 条评论