vue是什么
vue是当前最为主流的一个前端框架,用于构建客户端(用户界面)的渐进式js框架
渐进式:先完成最基本的功能开发,如果需要开发复杂的功能,可以借助vue的插件来完成(vue就是一个自底向上逐层开发的一个框架)
MVVM
MVVM是 view-model-viewmodel 的缩写,M代表model层,负责数据模型的存取和业务逻辑,V代表视图层,负责将数据模型转化成UI展现出来,ViewModel 是一个同步View 和 Model 的对象。负责连接model(模型层)和 view (视图层)、具有双向绑定,自动更新视图。
在MVVM架构下,view 和 model 之间并没有直接的联系,而是通过 ViewModel 进行交互,Model 和 ViewModel 之间的交互是双向的,因此 View 数据的变化会同步到Model中,而Model数据的变化也会立即反应到View上。
VUE框架的特点
1、组件化开发:提高代码的重用率
2、声明式编程:以前是命令式编程,不用操作复杂的dom
3、虚拟dom:
在vue中,我们使用模板来描述状态和dom之间的映射关系,vue通过编译模板转换成渲染函数,执行渲染函数就可以得到一个虚拟节点树,使用这个虚拟节点树就可以渲染页面
虚拟dom的最终目标是将虚拟节点(vnode)渲染到视图上,但是如果直接使用虚拟节点去覆盖旧节点的话,会有很多不必要的dom操作,
为了避免不必要的dom操作,虚拟dom在虚拟节点映射到视图的过程中,将虚拟节点与上一次渲染视图所使用的虚拟节点做对比,找到真正需要更新的节点来进行dom操作,从而避免操作其他无需改动的dom.
1、提供与真实dom节点所对应的虚拟节点vnode
2、将虚拟节点vnode和旧虚拟节点oldnode进行对比,然后更新视图。