假设有一个 Vue 实例,其数据对象中有一个名为 message
的属性。
new Vue({ el: '#app', data: { message: 'Hello Vue!' } })
在 HTML 中,可以使用 Vue 的模板语法来声明式地渲染这个 message
:
{{ message }}
当 message
的值变化时,Vue 会自动更新 DOM 以反映新的值,而无需手动编写任何 DOM 更新代码。
data
选项中的所有属性,并使用 Object.defineProperty
将它们转换为 getter/setter。这样,Vue 就能追踪到每个属性的访问和修改。假设有一个 Vue 实例,并且修改了 message
的值:
vm.message = 'New message!';
由于 message
是响应式的,Vue 会知道 message
的值已经改变,并自动触发更新过程,重新渲染所有依赖 message
的视图部分。