95 lines
1.7 KiB
Markdown
95 lines
1.7 KiB
Markdown
|
|
|||
|
|
|||
|
## 前言
|
|||
|
|
|||
|
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:体验无要求、不常用(比举报、反馈等)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|