# 响应式

除了一开始创建 HTML,Vue 还监控 data 对象的变化,并在数据变化时更新 DOM 。

<p>自从你打开这个页面,已经过了 {{seconds}} 秒</p>
<button v-bind:disabled="buttonDisabled" onclick="console.info('debug')">Button</button>
new Vue({
  el: '#app',
  data() {
    return {
      seconds: 0,
      buttonDisabled: true
    }
  },
  created() {
    setInterval(() => {
      this.seconds++;
      this.buttonDisabled = !this.buttonDisabled;
    }, 1000);
  }
});

有 3 种情况 Vue 监测不到 data 数据的变化,从而导致『响应式』失效,对于这 3 种情况我们在《专项问题》笔记中讲解、展示并提供解决方案。