虽然之前提过的 计算属性 computed
,就有监听的功能了,不过有时候我们仍需要一个属於自己定义的监听器,这时就可以使用到 watch
这个更通用的方法了~
点我复习 computed
var app = new Vue({
el: '#app',
data: {
question: ''
},
watch:{
// 把要观察的变数名称直接拿来使用
question(){
// 变动时要做的事 ...
}
// 也可以写成这样,可以依照需求
question(newData, oldData){
// 变动时要做的事 ...
// watch 提供了两个参数可以使用
// newData : 变更前的资料
// oldData : 变更後的资料
}
},
methods: {
}
})
watch
的使用会是将我们想要监听的变数,在 watch
当成 function 来使用,所以当范例中 question 的值被改变,就会自动执行 watch
我们定义变动时要做的事
除了简单的变数之外,物件、computed计算後的回传值 或是阵列...等,也是可以监听,先来看看物件监听的写法
data:{
member:{
id:1,
nickName:"Jerry"
}
},
watch : {
// 记得使用引号括起来
'member.nickName' : function() {
// do something ...
}
}
如果是阵列的话,一开始我们可能会只是个空阵列,等到我们接到值,才往里面丢资料,这时候就会用到深层监听的方式来监控阵列内内容的变化
data:{
todos:[]
},
watch : {
todos:{
deep: true,
handler() {
// do something ...
}
}
}
深层的写法会比较不同,要记得加上 deep: true
来告知使用深层监听而非浅层监听
对於 watch
的使用还有一些其他的使用方式跟介绍,像是 也可用来监听路由变化、Vue 实体初始化时叫用监听器、监听器的注销 ...等等,这边就没有多做介绍,有兴趣的可以再找找~
Vue 官方文件
勇者斗 Vue 龙 监听器( watch )
博客园(颠覆者) Vue.js中 watch(深度监听)的最易懂的解释
<<: 33岁转职者的前端笔记-DAY 23 JavaScript 变数与型别
故事简述如下 国外小伙 Abada 致力於挖矿普及,到星爸爸喝咖啡、溜自制挖矿平台、顺便再接别人家的...
前言 在前面总结完laravel的技巧後 今天想要跟各位分享 开启一个专案的时候 会进行什麽步骤 U...
前面说了几篇阵列以及阵列方法,今天终於要讲到跟阵列息息相关的「物件」了。物件包含着一个以上的属性与值...
Day 11 - 用Kotlin解数学题:考拉兹猜想 今天我们会用我前面所教的,来解今天的数学题,顺...
此篇为番外,为选入本篇的原因为 Cypress 的功能与 End to End 测试的方式多元且复...