watch
<template>
<div>
<div class="form_line">
<label>用户名:</label>
<input v-model="info.name" placeholder="请输入用户名" />
</div>
<div class="form_line">
<label>密码:</label>
<input v-model="info.passw" placeholder="请输入密码" />
</div>
<div>
<button type="button" ref="btn" @click="setClick">按钮</button>
</div>
</div>
</template>
<script>
export default {
data(){
return{
info: {
name: '', // 用户名
passw: '' // 密码
},
}
},
watch: {
info: { // 这监听对象值的改变 和上面的不一样。
handler(curVal,oldVal){
console.log(curVal);
this.setClick()
},
deep: true,
},
},
methods:{
setClick(){
alert('点击')
}
}
}
</script>
他是一个对象,此时我是监听的是data里面数值的改变,当我监听到我用户名和密码改变的时候,就触发alert。watch后面跟的是我要监听的参数info,watch有自己的监听函数handler,他能监听我当前的值和改变之前的值,如果监听的是data里面的值,deep是为必须的,他的意思就是监听data里面所有的数值变化。