# 1. 前言
Vue
最大的特点之一就是数据驱动视图。我们可以把数据理解为状态,而视图就是用户可直观看到页面。就可以得到如下一个公式:
UI = render(state)
上述公式中:状态state
是输入,页面UI
输出,状态输入一旦变化了,页面输出也随之而变化。这种特性称之为数据驱动视图。
OK,有了基本概念以后,再把上述公式拆成三部分:state
、render()
以及 UI。我们知道state
和UI
都是用户定的,而不变的是这个render()
。所以Vue
就扮演了render()
这个角色,当Vue
发现state
变化之后,经过一系列加工,最终将变化反应在UI
上。
那么第一个问题来了,Vue
怎么知道state
变化了呢?
# 2. 什么是变化侦测
那Vue
是怎么知道state
变化了呢?换句话说,数据变化了是怎么通知给Vue
呢?那么,这就引出了Vue
中的变化侦测。
变化侦测就是追踪状态,亦或者说是追踪数据的变化,一旦数据发生了变化,就要去更新视图。
# 3. 总结
首先,了解了什么是数据驱动视图。数据驱动视图简单来说就是数据变化引起视图变化,那么第一步就是先要知道数据什么时候发生变化,也就是说对数据的变化要进行侦测。
其次,数据的变化侦测在Vue
中有着自己的一套侦测机制。
最后,我们从源码出发,学习在Vue
中是如何对数据进行变化侦测的。