前端框架经过10年多的发展,层出不穷,最终为什么有大量开发人员选择使用vue,使用过vue的开发者都给了它很高的评价,因为vue兼具了angular和react的优点并剔除了它们的缺点,不像其他编程语言那样晦涩难懂,真正做到所见即所得。
VUE的优势
1.性能
过去前端编写主要依赖JS对DOM操作,但DOM的变化影响了所有元素的属性,浏览器需要重新计算和编排受到影响的元素,完成编排后还要重新绘制受影响的部分到品目中,非常消耗性能。既然DOM操作如此昂贵,而JS运行效率很高,干脆将DOM的计算和编排放在JS层,减少DOM的操作,如此便产生了一个虚拟DOM,虚拟DOM不会立即操作DOM,而是将计算内容保存成一个本地的js对象,最终执行一次,交由浏览器绘制。
2.视图、数据分离
前端的开发一直在追求数据和视图的分离,这样的好处就是当数据发生变化的时候,用户界面也发生相应的变化,开发人员不需要手动再去修改DOM。在实际项目中,我们有很大部分代码都是在数据修改以后,手动操作重新渲染页面元素,当页面越来越复杂的时候,页面代码会越来越难以维护,vue帮我们封装了数据和视图对象操作的映射,我们只需要关心数据的逻辑处理,数据的变化就能自然通知到页面的重新渲染。
3. 组件化开发
在项目开发中,我们很期望把同功能的样式、脚本、资源等文件拆分成一个独立的最小单元组件,对外暴露接口。vue提供了对这些组件的数据流转、事件控制、动态替换。通过vue的封装,我们可以把一个项目中的各种模块进行拆分,然后通过数据绑定、模板引入,完成对整个项目的开发,也便于分工。
4. 自动化打包发布
一个应用程序复杂以后,会使用很多素材和第三方库,我们需要把这些资源以链接方式引入,减少浏览器的访问次数,同时还要对它们进行合并、压缩、混淆,我们可以借助vue官方提供的webpack这个自动化构建工具解决好这些问题。vue也可以使用babel这个专门支持js语法降级编译的工具来配置处理js高级语法问题,实现一些降级编译操作,使得我们的项目打包运行后支持更多内核的浏览器。
5.vue的应用场景
vue由于其特性灵活、组件化,非常适合前后端分离的架构下开发,特别是移动端H5下,在移动端趋于统一的背景下,vue也是一个很好的选择,可以借助一些原生的浏览器壳子,灵活应用于桌面、android、ios等不同设备下,基于vue的框架和移动端的UI套件也非常多,名气比较大的有vux、vonic、mint ui、muse-ui、vant等等。
vue的前景和发展
Vue的技术生态非常丰富, 有关的一些工具和库,比如 Vuex、Webpack、VueCLI和Nuxt,在国内普及度非常广,同时它集合了众多优秀主流框架设计及思想,轻量、数据驱动(默认单向数据绑定,但也提供支持双向数据绑定)、学习成本低,且可与webpack/gulp构建工具结合实现web组件化开发、构建部署等;很庆幸,我们生在开源遍地的时代,vue本身就拥有一套较为成熟的生态系统:vue vue-router vuex webpack sass/less,不仅满足小的前端项目开发,也完全胜任开发大型的前端应用,包括单页面应用和多页面应用等,它可实现前端页面前后端业务分离、快速开发(因为很多组件供调用)、单元测试、构建优化(结合webpack自动打包构建、优化)、部署等。
vue的技术生态在不断的完善和发展,在GitHub等开源社区与vue相关的开源资源也很庞大,是当前主流的前端框架,未来的发展也十分热门。