Vue 相关面试题-带解答
1
1 对于 MVVM 的理解
MVVM 是 Model-View-ViewModel 缩写,也就是把 MVC 中的
Controller 演变成 ViewModel。Model 层代表数据模型,View 代表
UI 组件,ViewModel 是 View 和 Model 层的桥梁,数据会绑定到
viewModel 层并自动将数据渲染到页面中,视图变化的时候会通知
viewModel 层更新数据。
MVVM 是 Model-View-ViewModel 的缩写
Model: 代表数据模型,也可以在 Model 中定义数据修改和操作的业务逻辑。我们可
以把 Model 称为数据层,因为它仅仅关注数据本身,不关心任何行为
View: 用户操作界面。当 ViewModel 对 Model 进行更新的时候,会通过数据绑定更
新到 View
ViewModel:业务逻辑层,View 需要什么数据,ViewModel 要提供这个数据;View
有某些操作,ViewModel 就要响应这些操作,所以可以说它是 Model for View.
总结:MVVM 模式简化了界面与业务的依赖,解决了数据频繁更新。MVVM 在使用
当中,利用双向绑定技术,使 得 Model 变化时,ViewModel 会自动更新,而
ViewModel 变化时,View 也会自动变化。
2 请详细说下你对 vue 生命周期的理解
答:总共分为 8 个阶段创建前/后,载入前/后,更新前/后,销毁
前/后
生命周期是什么
Vue 实例有一个完整的生命周期,也就是从开始创建、初始化数据、
编译模版、挂载 Dom -> 渲染、更新 -> 渲染、卸载等一系列过程,
我们称这是 Vue 的生命周期
各个生命周期的作用
生命周期描述 beforeCreate 组件实例被创建之初,组件的属性生效之前 created
组件实例已经完全创建,属性也绑定,但真实 dom 还没有生成,$el 还不可用
beforeMount 在挂载开始之前被调用:相关的 render 函数首次被调用 mountedel
被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子 beforeUpdate 组件
数据更新之前调用,发生在虚拟 DOM 打补丁之前 update 组件数据更新之后
activitedkeep-alive 专属,组件被激活时调用 deadctivatedkeep-alive 专属,组件被
销毁时调用 beforeDestory 组件销毁前调用 destoryed 组件销毁后调用