侦听器:watch

56 阅读1分钟
  • 虽然侦听器在大多数情况下更合适,但有时也需要一个自定义的侦听器。
  • 这就是为什么Vue通过watch选项提供了一个更通用的方法,来响应数据的变化,当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。
  • 例如
<div id="watch-example">
<p> Ask a yes/no question: <input v-model="question"> </p>
<p>{{ answer }}</p>
</div>
  • 上面是一个输入框可以提问题
  • 下面是一个answer,根据输入框的内容变化;
  • 所以需要个watch,来观测问题的变化?
<script>
var watchExampleVM = new Vue({
 el:'#watch-example',\
 data: {
  question:'',
  answer:'I cannot give you an answer until you ask a question! '
 },
 watch:{
 //如果`question`发生改变。这个函数就会运行
 question: function (newQuestion ,oldQuestion) {
    this.answer = 'Waitting for you to stop typing...'
    this.debounceGetAnswer()
   }
 },
 
})
</script>