Vue篇
Vue
-
MVVM原理?
MVVM是Model-View-ViewModel的缩写。MVVM是一种设计思想。Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和Model的对象(桥梁)。
在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。
ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。
如图:
-
mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?
mvc和mvvm其实区别并不大。都是一种设计思想。- 主要就是mvc中Controller演变成mvvm中的viewModel。
- mvvm主要解决了mvc中大量的DOM操作使页面渲染性能降低,加载速度变慢,影响用户体验。
区别:
vue数据驱动,通过数据来显示视图层而不是节点操作。场景:
数据操作比较多的场景,更加便捷。
-
vue的优点?
- 低耦合。
- 视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
- 可重用性。
- 你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。
- 独立开发。
- 开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计。
- 可测试
- 界面素来是比较难于测试的,而现在测试可以针对ViewModel来写。
- 低耦合。
-
vue组件怎么使用?自己怎么创建共用组件?Vue组件封装过程?
-
vue双向数据绑定原理?
- 采用数据劫持结合发布者-订阅者模式的方式
- 通过 Object.defineProperty() 来劫持各个属性的 setter/getter,
- 在数据变动时发布消息给订阅者,触发相应的监听回调。
具体步骤如下:
A.需要observe的数据对象进⾏递归遍历 B.compile解析模板指令 C.Watcher订阅者是Observer和Compile之间通信桥梁 D.MVVM作为数据绑定的⼊⼜,整合Observer、Compile和Watcher三者
-
watch、computed 和 methods 区别?
-
vue核心是什么?
-
vue单页面应用优点、缺点?
-
vue-cli 怎么使用自定义组件?遇到过哪些问题?
-
vue-cli中 src文件夹下的每个文件用法?
-
keep-alive 作用?
-
vue生命周期的理解?
-
router 和 route 区别?$router数据传递?
-
组件之间的通信方式?
-
v-for 为什么要使用 :key ?
-
v-show 和 v-if 区别?
-
Vuex的理解、有几种属性?Mutaions actions 在哪使用?
-
在复杂交互和多层页面切换时,如何保证页面间及不同组件之间值的传递? 提交或者返回上一级的时候,如何实现父级页面刷新且停留在进入前的状态?
-
v-model原理?
-
VueRouter中 query传参和param传参区别?
-
路由守卫?
-
VueRouter 钩子函数有哪些?
-
vue-router怎么实现动态路由懒加载?
-
mixin混入
-
作用域插槽怎么使用?
-
$nextTick作用?
-
怎么获取全局Store中的数据? mapState是什么?
-
虚拟dom实现原理?
-
vue可以通过数据劫持精准探测数据变化,为什么还要通过虚拟dom进行diff检测差异?
有待更新....