脚本宝典收集整理的这篇文章主要介绍了认识和使用vue中更全面的侦听器watch,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
vue中什么是侦听器呢?
官方定义:Vue 通过 watch
选项提供了一个更通用的方法,来响应数据的变化。当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的
一个对象,键是要侦听的响应式 property——包含了 data 或 computed property,而值是对应的回调函数。值也可以是方法名,或者包含额外选项的对象。组件实例将会在实例化时调用 $watch()
,参阅 $watch,以了解更多关于 deep
、immediate
和 flush
选项的信息
侦听器watch的配置选项:
默认情况下,watch只是在侦听数据的引用变化,对于数据内部属性的变化是不会做出响应的:
data的内容:
data() {
return {
info: {
name: 'cgj'
}
}
}
watch: {
info: {
handler(newValue, oldValue) {
console.log(newValue, oldValue)
}
deep: true,
immediate: true,
}
}
'info.name': function(newValue, oldValue) {
console.log(newValue, oldValue)
}
最终示例:
const app = createApp({
data() {
return {
a: 1,
b: 2,
c: {
d: 4
},
e: 5,
f: 6
}
},
watch: {
// 侦听顶级 property
a(val, oldVal) {
console.log(`new: ${val}, old: ${oldVal}`)
},
// 字符串方法名
b: 'someMethod',
// 该回调会在任何被侦听的对象的 property 改变时被调用,不论其被嵌套多深
c: {
handler(val, oldVal) {
console.log('c changed')
},
deep: true
},
// 侦听单个嵌套 property
'c.d': function (val, oldVal) {
// do something
},
// 该回调将会在侦听开始之后被立即调用
e: {
handler(val, oldVal) {
console.log('e changed')
},
immediate: true
},
// 你可以传入回调数组,它们会被逐一调用
f: [
'handle1',
function handle2(val, oldVal) {
console.log('handle2 triggered')
},
{
handler: function handle3(val, oldVal) {
console.log('handle3 triggered')
}
/* ... */
}
]
},
methods: {
someMethod() {
console.log('b changed')
},
handle1() {
console.log('handle 1 triggered')
}
}
})
const vm = app.mount('#app')
vm.a = 3 // => new: 3, old: 1
顺便分享一波个人公众号,关注关注我呗,分享一些你们需要的资源,大家一起进步。
会分享一些视频资源的哦
以上是脚本宝典为你收集整理的认识和使用vue中更全面的侦听器watch全部内容,希望文章能够帮你解决认识和使用vue中更全面的侦听器watch所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。