## 前言 MVVM的常见问题: - 如何理解MVVM - 如何实现MVVM - 是否解读过Vue的源码 题目: - 说一下使用 jQuery 和使用框架的区别 - 说一下对 MVVM 的理解 - vue 中如何实现响应式 - vue 中如何解析模板 - vue 的整个实现流程 ## 说一下使用 jQuery 和使用框架的区别 ## MVVM / Vue ## MVVM模式 - Model:负责数据存储 - View:负责页面展示 - View Model:负责业务逻辑处理(比如Ajax请求等),对数据进行加工后交给视图展示 数据驱动视图,只关心数据变化,DOM操作被封装。 ### MVVM / Vue的三要素 - **响应式**:vue 如何监听到 data 的每个属性变化? - **模板引擎**:vue 的模板如何被解析,指令如何处理? - **渲染**:vue 的模板如何被渲染成 html ?以及渲染过程 ### 什么是虚拟 DOM 传统的web开发,是利用 jQuery操作DOM,这是非常耗资源的。 我们可以在 JS 的内存里构建类似于DOM的对象,去拼装数据,拼装完整后,把数据整体解析,一次性插入到html里去。这就形成了虚拟 DOM。 Vue1.0没有虚拟DOM,Vue2.0改成了基于虚拟DOM。 ### 如何理解MVC C指的是Controller。控制器能够控制视图的变化,也能控制数据的变化。 单项通信。一般情况下是:view 发出命令给控制器,控制器处理业务逻辑后控制 Model,Model再去改 view。 ## hybrid ### 使用场景 不是所有的场景都适合用 hybrid: - 使用原生应用:体验要求极致,变化不频繁(如头条的首页) - 使用 hybrid:体验要求高,变化频繁(如新闻详情页) - 使用H5:体验无要求、不常用(比举报、反馈等)