属性监听
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
<script src="./vue.min.js"></script>
</head>
<body>
<div id = "app">
<p style = "font-size:25px;">计数器: {{ counter }}</p>
<button @click = "counter++" style = "font-size:25px;">点我</button>
</div>
<script type = "text/javascript">
var vm = new Vue({
el: '#app',
data: {
counter: 1
}
});
vm.$watch('counter', function(newValue, oldValue) {
alert(oldValue+ ' -------' + newValue);
});
</script>
</body>
</html>
- 事件监听demo,千米换算
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>千米换算</title>
<script src="./vue.min.js"></script>
</head>
<body>
<div id="app">
<input type="text" v-model="kilometers">km = <input type="text" v-model="meters">m
<p id="info"></p>
</div>
<script>
var vm = new Vue({
el: "#app",
data: {
kilometers: 0,
meters: 0
},
watch: {
kilometers : function(val){ //kilometers改变后触发此方法
this.kilometers = val;
this.meters = val * 1000;
},
meters : function(val){ //meters改变后触发此方法
this.kilometers = val /1000;
this.meters = val;
}
}
});
//kilometers改变后触发此方法,将此段内容写入标签中
vm.$watch('kilometers',function(newValue,oldValue){
document.getElementById('info').innerHTML = 'kilometers修改前的值为:'+oldValue+",修改后的值为:"+newValue
});
</script>
</body>
</html>