> ## 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,可以扫描和解析每个节点的相关指令,
~~~