# 响应式原理
现代框架使用数据=>视图
的方式,隐藏了繁琐的dom操作,采用声明式编程替换了命令式编程(如 jquery)。
Vue在渲染实例的时候,遍历data
对象的所有属性,并使用Object.defineProperty
把这些属性全部转为getter
/setter
。同时创建watcher
对象,在getter
中将属性设置为依赖。之后修改依赖项数据的时候,会调用setter
,setter
通过dep.notify()
通知watcher
重新计算,从而使它关联的组件得以更新。
PS:根绝目前对React
的了解,它的数据流是单向的,必须通过setState
的方法去告知视图数据发生了变化,然后通过virtual dom diff
去渲染视图。
参考内容:
深度剖析:如何实现一个 Virtual DOM 算法 (opens new window)
← 控制audio播放进度的实现 CSS布局 →