使用watch监听器
<template>
<div id="app">
<input type="text" v-model="msg" />
<input type="text" v-model="name" />
<input type="text" v-model="info.password" />
<input type="text" v-model="info.username" />
</div>
</template>
<script>
export default {
name: "App",
data() {
return {
msg: "",
name: "admin",
info: {
username: "",
password: "",
},
};
},
// 新值在前 旧的在后 应用场景 判断用户名是否占用
watch: {
// 方法监听器只能手动触发
msg(newval, oldval) {
console.log("新的值", newval);
console.log("旧的值", oldval);
},
// 对象监听器 可以让监听器一进页面就触发
name: {
// handler是监听器自带的的处理函数
handler(newval, oldval) {
console.log("新的值", newval);
console.log("旧的值", oldval);
},
// 可以一进页面就触发监听器 监听器自带的immediate
immediate: true,
},
// deep深度监听
info: {
handler(newval, oldval) {
console.log("新的值", newval);
console.log("旧的值", oldval);
},
// deep是否开启深度监听 只要对象中任何一个属性有变化都会触发监听器
deep: true,
},
// 直接监听对象的子属性
"info.username"(newval, oldval) {
console.log("新的值", newval);
console.log("旧的值", oldval);
},
},
};
</script>