

## 前言

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：体验无要求、不常用（比举报、反馈等）







