vue的双向绑定的原理,和angular的对比
-
在不同的MWM框架中,实现双向数据绑定的技术有所不同。 AngulaJS采用‘‘脏值检测”的方式,数据发生变更后,对于所有的数据和视图的绑定关系进 行一次检测,识别是否有数据发生了改变,有变化进行处理,可能进一步引发其他数据的改 变,所以这个过程可能会循环几次,一直到不再有数据变化发生后,将变更的数据发送到视 图,更新页面展现。如果是手动对ViewModel的数据进行变更,为确保变更同步到视图, 需要手动触发一次‘‘脏值检测”。 VueJS则使用ES5提供的〇bject.defineProperty()方法,监控对数据的操作,从而可以自 动触发数据同步。并且,由于是在不同的数据上触发同步,可以精确的将变更发送给绑定的 视图,而不是对所有的数据都执行一次检测。 详细参见:http://www.jianshu.eom/p/d3a15a1f94a0