Vue学习笔记5:监视属性
5. 监视属性
在watch中通过一个配置(isHot),监视data中的isHot这个属性,以及info这个计算属性。
<!--准备好一个容器-->
<div id="root">
<h2>今天天气很{{info}}</h2>
<!--绑定事件的时候:@xxx="yyy" yyy可以写一些简单的语句-->
<!--<button @click="isHot = !isHot">切换天气</button>-->
<button @click="changeWeather">切换天气</button>
</div>
<script type="text/javascript">
Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
const vm = new Vue({
el: '#root',
data: {
isHot: true
},
computed: {
info() {
return this.isHot ? '炎热' : '凉爽'
}
},
methods: {
changeWeather() {
this.isHot = !this.isHot
}
},
watch: {
isHot: {
immediate: true, //初始化时让handler调用一下
//hander什么时候调用?当isHot发生改变时。
handler(newValue, oldValue) {
console.log('isHot被修改了', newValue, oldValue);
}
},
info: {
immediate: true, //初始化时让handler调用一下
handler(newVal, oldVal) {
console.log('info被修改了', newVal, oldVal);
}
}
}
})
</script>
也可以换如下这种方式来监视属性:
vm.$watch('isHot', {
immediate: true, //初始化时让handler调用一下
//hander什么时候调用?当isHot发生改变时。
handler(newValue, oldValue) {
console.log('isHot被修改了', newValue, oldValue);
}
});