小编在群里看到一句话,说三件套加vue就可以找到实习,三件套估计说的是HTML+JavaScript+CSS,但还有这好事?这可不得赶紧把vue面试题安排上。实不实习不重要,主要是想学习哈哈哈哈(手动狗头)。
也有小伙伴私信小编有没有vue的面试题,看来之前的前端面试套餐:Vue面试题总结+JavaScript前端经典面试题+100道 CSS 面试题满足不了大家呀,小编又整理了一套vue面试题集合,需要的小伙伴直接点击这里喔
面试题篇
1.老生常谈之, MPA/SPA 的理解,优缺点是什么?
MPA
多页面应用。
- 构成:有多个页面
html
构成, - 跳转方式:页面的跳转是从一个页面到另一个页面
- 刷新的方式:全页面刷新
- 页面数据跳转:依赖
URL/cookie/localStorage
- 跳转后的资源
会重新加载
- 优点:对 SEO 比较友好,开发难度低一点。
SPA
单页面应用
- 页面组成:由一个外壳页面包裹,多个页面(组件)片段组成
- 跳转方式:在外壳页面中跳转,将片段页面(组件)显示或隐藏
- 刷新方式:页面片段的局部刷新
- 页面的数据跳转:组件间的传值比较容易
- 跳转后的资源
不会重新加载
- 缺点:对 SEO 搜索不太友好需要单独做配置,开发难度高一点需要专门的开发框架
iframe 实际上是
MPA
,但是可以实现SPA
的一些效果,但是本身由不少问题。
2.老生常谈之,为什么需要有这些 MVC/MVVM 模式?谈谈你对 MVC,MVVM 模式的区别,
目的:借鉴后端的思想,职责划分和分层
- Vue, React 不是真正意义上的 MVVM 更不是 MVC,两者核心只处理视图层
view
。
MVC模式
单向的数据,用户的每一步操作都需要重新请求数据库来修改视图层的渲染,形成一个单向的闭环。比如
jQuery+underscore+backbone
。
- M:
model
数据存放层 - V:
view
:视图层 页面 - C:
controller
:控制器 js 逻辑层。
controller
控制层将数据层model层
的数据处理后显示在视图层view层
,同样视图层view层
接收用户的指令也可以通过控制层controller
,作用到数据层model
。所以MVC的缺点是视图层不能和数据层直接交互。
MVVM模式
隐藏了
controller
控制层,直接操控View
视图层和Model
数据层。
- M:model 数据模型
- V: view 视图模板
- VM:view-model 视图数据模板(vue处理的层,vue 中的definedProperty 就是处理 VM 层的逻辑)
<双向的数据绑定:
model
数据模型层通过数据绑定Data Bindings
直接影响视图层View
,同时视图层view
通过监听Dom Listener
也可以改变数据模型层model
。