Vue系列
vue是什么
Vue.js(简称Vue)是一个用于创建用户页面的开源JavaScript框架,也是一个创建单页面应用的Web应用框架。
Vue核心属性
数据驱动(MVVM)
MVVM表示的是Model-View-ViewModel
- Model:模型层,负责处理业务逻辑以及和服务器进行交互
- View:视图层:负责将数据模型转化成UI展示出来,可以简单的理解为 HTML页面
- ViewModel:视图模型层,用来连接Model和View,是Model和View之间的通信桥梁
组件化
一句话来说就是把图形、非图形的各种逻辑均抽象为一个统一的概念(组件)来实现开发的模式,在Vue中每一个.vue文件都可以视为一个组件
优势:
- 降低耦合,在保持接口不变的情况下,我们可以替换不同的组件快速完成需求,例如输入框,可以替换为日历、时间、范围等组件作具体的实现
- 方便调试,由于整个系统是通过组件组合起来的,在出现问题的时候,可以用排除法直接移除组件,或者根据报错的组件快速定位问题,之所以能够快速定位,是一位每个组件之间低耦合,职责单一,所以逻辑会比分析整个系统要简单
- 提高可维护性,由于每个组件的职责单一,并且组件在系统中是被复用的,所以对代码进行优化可获得系统的整体升级
指令
指令(Directives)是带有v-前缀的特殊属性作用:当表达式的值改变时,将其产生的连带影响,相应是的作用于DOM
- 常用指令
- 条件渲染 v-if
- 列表渲染 v-for
- 属性绑定 b-bind
- 事件绑定 v-on
- 双向数据绑定 v-model
Vue跟传统开发的区别
- Vue所有的界面的事件,都是指去操作数据的,Jquery操作DOM
- Vue所有页面的变动,都是根据数据自动绑定出来的,Jquery操作DOM
Vue跟React对比
相同点
- 都用组件化思想
- 都支持服务器渲染
- 都有Virtual DOM(虚拟dom)
- 都有支持原生的方案: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
参考文献
- https://segmentfault.com/a/1190000016269636
- https://zh.wikipedia.org/zh-cn/Vue.js
- https://zhuanlan.zhihu.com/p/20197803
- https://zhuanlan.zhihu.com/p/38296857