regularjs

JS核心理论之《Vue响应式原理及MVVM实现》

喜夏-厌秋 提交于 2020-07-28 17:42:31
MVVM 概念 MVVM 表示的是 Model-View-ViewModel 。 Model:模型层,负责处理业务逻辑以及和服务器端进行交互 View:视图层:负责将数据模型转化为UI展示出来,可以简单的理解为HTML页面 ViewModel:视图模型层,用来连接Model和View,是Model和View之间的通信桥梁 View层和Model层并没有直接联系,而是通过ViewModel层进行交互。ViewModel层通过双向数据绑定将View层和Model层连接了起来,使得View层和Model层的同步工作完全是自动的。 实现数据绑定的方式及代表有: 发布订阅模式(Backbone) 数据劫持或代理(VueJS,AvalonJS) 通过 Object.defineProperty 或 Proxy ,前者 不能监听数组变化 , 必须遍历对象的每个属性 , 嵌套对象必须深层遍历 ; 后者可以 监听数组变化 ,仍然 需要深层遍历嵌套对象 ,兼容性不如前者。 数据脏检查(AngularJs,RegularJS) 在 可能触发 UI 变更的时候 进行脏检查,如DOM事件,XHR响应事件、定时器等。 实现 双向数据绑定需要实现以下三个类: Observer 监听器:用来监听属性的变化,并通知订阅者 Watcher 订阅者:接受属性变化的通知,然后更新视图 Compile 解析器:解析指令