vue是一个MVVM(模型-视图-视图模型)框架
vue实现双向绑定核心是object.defineProperty。
流程:
1. 首先complie解析模板,将里面的变量转换成数据,然后渲染页面视图,并把每个节点绑定一个更新函数,添加watcher订阅者。
2. observer里的object.defineProperty(),通过这个方法来监听数据的getter和setter,数据一旦发生变化就会触发setter,然后observer就会通知watcher。
3. watcher触发自身的update方法,并触发complie绑定的回调
参考https://segmentfault.com/a/1190000013294870