监听器
在watch选项中定义,包含2个参数,监听数据的新值,第二个是旧值
监听器的使用
<div id="app">
时:<input type="text" v-model="time">
分钟:<input type="text" v-model="minute"/>
</div>
<script>
const vm = Vue.createApp({
data(){
return{
time:0,
minute:0
}
},
watch:{
time(val){ this.minute = val * 60},
minute(val,oldVal){ this.time = val / 60; }
}
}).mount('#app')
</script>不要使用箭头函数定义监听函数
实例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="app">
千米 : <input type="text" v-model="kilometers">
米: <input type="text" v-model="meters">
</div>
<script src="https://unpkg.com/vue@next"></script>
<script>
const vm = Vue.createApp({
data(){
return {
kilometers:0,
meters:0
}
},
// 监听器
watch:{
// 当数据属性 kilometers 变化时 另一个数据属性会自动发生改变
kilometers(val){
this.meters = val * 1000;
},
// 监听器函数也可以接收2个参数 val是当前值 oldVal 是改变之前的值
meters(val, oldVal){
this.kilometers = val / 1000;
}
}
}).mount("#app");
</script>
</body>
</html>