vue是一个MVVM(模型-视图-视图模型)框架

vue实现双向绑定核心是通过object.defineProperty来进行数据劫持。

流程:

     1. 首先指令解析器complie解析模板,将里面的变量转换成数据,然后渲染页面视图,并把每个节点绑定一个更新函数,添加watcher订阅者。

     2. 数据监听器observer里的object.defineProperty(),通过这个方法来监听数据的getter和setter,数据一旦发生变化就会触发setter,然后observer就会通知watcher。

     3. 数据变动会触发notify通知所有订阅者,watcher触发自身的update方法,并触发complie绑定的回调

参考https://segmentfault.com/a/1190000006599500

posted on 2021-09-29 09:46  秃头大宝贝  阅读(36)  评论(0)    收藏  举报