1.是什么?
Vue是一个用于创建用户界面的开源JavaScript框架,也是一个创建单页应用的web应用框架。Vue所关注的核心是MVC模式中的视图层,同时它也能方便地获取数据更新,并通过组件内部特定的方法实现视图与模型的交互。
2.Vue核心特性
(1)数据驱动(MVVM:Model View ViewModel)
Model:模型层,负责处理业务逻辑以及和服务器端交互。
View:视图层,负责将数据模型转化为UI展示出来,简单理解即html页面。
ViewModel:视图模型层,用来连接Model和View,是Model和View之间的通信桥梁。
(2)组件化
组件化即把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式,在Vue中每一个.vue文件都可以视为一个组件2.组件化的优势:
降低整个系统的耦合读。在保持接口不变的情况下,可以替换不同的组件快速完成需求,例如输入框可以替换为日历、时间、范围等组件作具体的实现
调试方便,由于整个系统是通过组件组合起来的,在出现问题的时候,可以用排除发直接移除组件,或这根据报错的组件快速定位问题,之所以能够快速定位,是因为每个组件直接低耦合,职责单一,所以逻辑会比分析整个系统要简单。
提高可维护性,由于每个组件的职责单一,并且组件在系统中是被复用的,所以对代码进行和优化可获得系统的整体升级。
(3)指令系统
指令即带有v-前缀的特殊属性,作用:当表达式的值改变时,将其产生的连带影响,响应式地作用于DOM。
常用的指令:v-if条件渲染指令、v-for列表渲染指令、v-bind属性绑定指令、v-on事件绑定指令、v-model双向数据绑定指令
3.Vue跟传统开发的区别
传统开发:用jQuery选择流程dom对象,点击按钮隐藏当前流程dom对象,显示下一流程dom对象。
vue开发:视图层使用一变量控制dom节点显示与否,点击按钮则改变该变量。双向绑定使dom节点跟视图绑定后,通过修改变量的值控制dom节点的各类属性。
总结:Vue所有的界面事件,都是只去操作数据的,jQuery操作DOM。
Vue所有界面的变动,都是根据数据自动绑定出来的,Jquery操作DOM。
4.Vue和React对比
相同点:都有组件化思想;都有支持服务器端渲染;都有虚拟DOM(Virtual DOM);数据驱动视图;都有支持native的方案(Vue的weex、React的React native);都有自己的构建工具(Vue的vue-cli、React的Create React App)
区别:
数据流向不同(React从诞生开始就推崇单向数据流,而Vue是双向数据流)
数据变化的实现原理不同(React使用的是不可变数据,而Vue使用的是可变数据)
组件化通信的不同(React中我们通过使用回调函数来进行通信,而Vue中子组件向父组件传递信息有两种:事件和回调函数)
diff算法不同(React主要使用diff队列保存需要更新哪些DOM,得到patch树,再统一操作批量更新DOM。Vue使用双向指针,边对比,边更新DOM)