Web/14-前端面试/16-01.MVVM.md

95 lines
1.7 KiB
Markdown
Raw Normal View History

2018-03-21 21:45:10 +08:00
## 前言
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没有虚拟DOMVue2.0改成了基于虚拟DOM。
### 如何理解MVC
C指的是Controller。控制器能够控制视图的变化也能控制数据的变化。
单项通信。一般情况下是view 发出命令给控制器,控制器处理业务逻辑后控制 ModelModel再去改 view。
## hybrid
### 使用场景
不是所有的场景都适合用 hybrid
- 使用原生应用:体验要求极致,变化不频繁(如头条的首页)
- 使用 hybrid体验要求高变化频繁如新闻详情页
- 使用H5体验无要求、不常用比举报、反馈等