虽然计算属性在大多数情况下更合适,但有时也需要一个自定义的侦听器。 Vue 通过 watch 选项提供了一个来响应数据的变化。当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。
<div id="watch-example">
<p>
<input v-model="question">
</p>
</div>
<script>
var VM = new Vue({
el: '#watch-example',
data: {
question: '',
},
watch: {
// 如果 `question` 发生改变,这个函数就会运行
question: function (newvalue, oldvalue) {
this.debouncedGetAnswer()//在methods中写这个方法,当question发生变化就会执行此方法
}
}
})
</script>