> ## 1、vue原理 ``` 1、通过建立虚拟dom树document.createDocumentFragment(),方法创建虚拟dom树。 2、一旦被监测的数据改变,会通过Object.defineProperty来劫持各个属性的setter,getter, 定义的数据拦截,截取到数据的变化。 3、截取到的数据变化,从而通过订阅——发布者模式,触发Watcher(观察者), 从而改变虚拟dom的中的具体数据。 4、最后,通过更新虚拟dom的元素值,从而改变最后渲染dom树的值,完成双向绑定 ``` >## 2、双向绑定原理 ~~~ 1.实现一个监听器Observer,用来劫持监听所有的属性,如有变动通知订阅者; 2.实现一个订阅者Watcher, 收到属性变化的通知执行相应的函数,从而更新视图 3.实现一个解析器Compile,可以扫描和解析每个节点的相关指令, ~~~