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

95 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## 前言
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体验无要求、不常用比举报、反馈等