You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="en">
|
|
|
|
<head>
|
|
|
|
<meta charset="UTF-8">
|
|
|
|
<title>3.天气案例_深度监视</title>
|
|
|
|
<script type="text/javascript" src="../vue.js"></script>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<div id="root">
|
|
|
|
<h3>今天天气很{{showInfo}}</h3>
|
|
|
|
<button @click="changeWeather">切换天气</button>
|
|
|
|
<hr/>
|
|
|
|
<h3>a的值是:{{number.a}}</h3>
|
|
|
|
<button @click="number.a++">点我a+1</button>
|
|
|
|
</div>
|
|
|
|
<script>
|
|
|
|
Vue.config.productionTip = false
|
|
|
|
const vm = new Vue({
|
|
|
|
el: "#root",
|
|
|
|
data: {
|
|
|
|
'isHot': true,
|
|
|
|
number: {
|
|
|
|
a: 1,
|
|
|
|
b: 1,
|
|
|
|
}
|
|
|
|
},
|
|
|
|
computed: {
|
|
|
|
showInfo() {
|
|
|
|
return this.isHot ? '炎热' : '凉爽'
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
changeWeather() {
|
|
|
|
this.isHot = !this.isHot
|
|
|
|
}
|
|
|
|
},
|
|
|
|
watch: {
|
|
|
|
isHot: {
|
|
|
|
immediate: true,
|
|
|
|
handler(newValue, oldValue) {
|
|
|
|
console.log('isHot 被修改', newValue, oldValue)
|
|
|
|
}
|
|
|
|
},
|
|
|
|
'number': {
|
|
|
|
deep: true, // 深度监视开关
|
|
|
|
handler() {
|
|
|
|
console.log('number被改变! ', this.number.a)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
</script>
|
|
|
|
</body>
|
|
|
|
</html>
|