说到前端的框架,目前主流最受欢迎三大框架莫属于Vue、Angular、React。但是在面对90%的中小企业为什么会选择使用vue呢?
【vue到底是什么呢】
首先Vue.js是一个轻巧、高性能、可组件化的MVVM库,同时拥有非常容易上手的API。
MVVM分为三部分:View(页面DOM)、ViewModel(监控者)、Model(数据)
所以简而言之:Vue.js是一个构建数据驱动的系统 web 界面的渐进式框架。Vue.js 目标是通过尽可能简单地实现 API 实现响应的数据绑定和组合的视图组件。核心是一个响应的数据绑定系统。
【Vue具体的特点和优点有哪些呢】
vue两大特点:响应式编程、组件化
响应式编程:在使用 Vue 实现 SPA,响应式编程是一套最核心的理念,整个系统根据数据对象对页面进行反向渲染,让站点避免结构混乱的问题。
组件化:一个站点由不同的多个组件组成, 当数据发生变化,最小颗粒的更新变化的部分,不会整个页面发生变化,从而大大提高了性能。同时每个组件都有自己独立的CSS、JS、模板(可理解为就是我们所熟悉的html)
vue的优势
轻量级的框架+指令:它通过双向数据绑定把 View 层和 Model 层连接了起来.实际的DOM封装和输出。
双向数据绑定:当数据发生变化的时候,视图也就发生变化,当视图发生变化的时候,数据也会跟着同步变化。
组件化开发:就是把页面拆分成多个组件,每个组件依赖的 CSS、JS、模板、图片等资源放在一起开发和维护。
单页面路由:单页是把原本的多个页面以组件的形式集成在一个页面中,页面跳转时由vue路由到目标页面,分别加载不同的组件,而页面不会刷新,路由在更新
虚拟dom:在Vue的底层实现上, Vue将模板编译成虚拟DOM渲染函数。结合Vue自带的响应系统,在状态改变时 ,Vue能够智能地计算出重新渲染组件的最小代价并应到DOM操作上。
渐进式框架:用你想用或者能用的功能特性,不想用的部分功能可以先不用,来完成一个开发。
数据和结构的分离:最小粒度更新,vue每次更新会进行虚拟dom和屏幕已有dom对比,只更新有变化的部分,性能更高
插件化:插件的功能范围没有严格的限制,满足大多插件可以和vue配合一起使用。
【Vue的缺点有哪些呢】
但是并不是vue.js 只有优点,而没有缺点,任何东西都没有十全十美的东西!
支持IE8以下
社区可能没有Angular和React那么丰富
Vue 不缺入门教程,可是很缺乏高阶教程与文档。同样的还有书籍
因为是单页面应用,不利于seo优化
初次加载时耗时多
【vue与Angular、React的异同】
为什么在90%企业选择vue.js,而不是Angular和React呢?
首先vue.js作者尤雨溪在开发vue.js的时候,不光借鉴了Angular和React的优势,同时还保留开发了自己独有的优点!快效地完成一个项目的开发,节约成本,这无疑对于中小企业来讲是一大福利,节省了项目开发的周期以及开发成本!
那么我们来看一下vue 与 Angular和React到底有哪些相同点和不同点呢?
与Angular.js相比:
相同点
1、都支持指令,内部指令和自定义指令
2、都支持过滤器,内置过滤器和自定义过滤器
3、都支持双向绑定
4、都不支持低端浏览器
不同点
1、Angular学习成本高,增加了依赖注入,Vue本身提供的API比较简单,直观
2、在性能上,Angular依赖对数据做脏检查,所以watcher越多越慢
与React.js相比:
相同点
1、React采用了JSX语法,Vue也可使用特殊文件格式
2、都不内置Ajax,Router等功能的核心包,而是以插件的形式加载
3、在组件开发中都支持mixins的特性
4、利用虚拟DOM实现快速渲染
不同点
1、vue在模板中提供了指令,过滤器等,可以非常方便地操作DOM
2、渲染过程不同
3、vue实现了数据的双向绑定,react数据流动是单向的