实践选题:详解前端框架中的设计模式,并对比分析优缺点以及使用案例。
MVVM简介
-
MVVM是Model-View-ViewModel的简写,即模型-视图-视图模型。MVVM 将其中View的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。其中模型指的是后端传递的数据;视图指的是所看到的页面。视图模型是mvvm模式的核心,它是连接view和model的桥梁。
-
它有两个方向:一是将模型转化成视图,即将后端传递的数据转化成所看到的页面。实现的方式是:数据绑定。二是将视图转化成模型,即将所看到的页面转化成后端的数据。实现的方式是:DOM 事件监听。这两个方向都实现的称之为数据的双向绑定。
vue的MVVM实践原理
- vue作为MVVM模式实现库的技术:
- 数据代理
- 模板解析:通过模板动态展示数据
- 数据绑定:更新数据,界面自动变化(数据劫持实现)
- 初始化界面
-
new MVVM
-
observer:监视/劫持data中所有层次的属性
-
dep:与data中的属性一一对应
-
complie:编译,解析模板({}和指令)
-
调用update实现初始化界面
-
watcher 与表达式对应(除事件指定表达式),同时指定了更新节点的回调函数
-
建立watcher与dep的联系,将watcher放入dep之中。subs为订阅者列表,watcher为订阅者。
- 当结点更新时:改变observer中的set->告知dep->通知所有相关的watcher->调用update中的回调函数更新界面