2018前端框架深度抉择

前端技术日新月异,最终由Angular、React、Vue三分天下。文章分四点对前端框架的选型进行深度解析:1、前端框架概览;2、公司最关心的开源许可;3、框架内部技术解析;4、选型结论;

一、前端框架

前端框架三驾马车Angular、React、Vue,参考我的另文一篇文章《2017 年比较 ANGULAR、REACT、VUE 三剑客》,里面对每个框架有详细的说明。

二、开源许可

开源许可严重关系到该软件是否开源用于商业化,引用阮一峰老师总结的开源软件许可图片进行描述,其中Angular与Vue使用较为自由的MIT许可,而React目前使用有些开源苛刻的BSD许可。

三、内部技术分析

2018年前端主要关注的技术可参考我的另一篇文章《2018前端值得关注的技术》,里面包含了2018年最主流的前端开发技术。下面对主流技术进行简短描述:

前端含前端JS与后端JS,两者都是基于ECMAScript规范。前端JS主要用来操作页面元素DOM,操作浏览器BOM。后端JS扩展出了一些服务器所需的API,如操作系统能力os、操作文件系统file、操作网络系统net、操作数据库database。后端的JS主要使用nodeJS,nodeJS会使用很多别人已经写好的JS代码,为了给引用代码统一规范,引申出了npm,npm其实就是nodeJS的包管理器。—- 引用文章 https://www.jianshu.com/p/857ef827fbd4

三种主流框架都使用相同的后端JS–nodeJS进行前端服务器开发。而前端JS也趋于一致,但目前分为两大派系:传统JS、升级版ES以及微软开发的TS。

1、传统JS与升级版ES

1995年网景浏览器首次发布浏览器脚本语言,为了趁当时Java的热度,决定命名为JavaScript,简称JS。其实两种语言本身并无关系,就比如雷锋与雷峰塔的区别。

1996年网景将JS提交给ECMA International(欧洲计算机制造商协会)进行标准化,并最终确定新的语言标准,这就是ECMAScript,简称ES。

自此ES成为了JS的基础,但现实中只称ES为标准,JS为语言。后期ES陆续地更新了几个版本,各大浏览器厂商也开始兼容这些更新的API。即使在2009年已更新到了ECMAScript5,但很多前端开发者仍在写着ECMAScript3的风格。2015 年,负责制定 ECMAScript 规范草案的委员会 决定将定义新标准的制度改为一年一次,这意味着每个新特性一旦被批准就可以添加,而不像以往一样,规范只有在整个草案完成,所有特性都没问题后才能被定稿。

目前,仍然有很多新的 JS 特性或语法正在提议中,包括 decorators(装饰者),async-await(async-await 异步编程模型) 和 static class properties(静态类属性)。它们通常被称为 ES7,ES2016 或者 ES.Next 的特性,不过实际上它们只能被称作提案或者说可能性,毕竟 ES2016 的规范还没有完成,有可能全部都会引入,也有可能一个都没有。你可以在 Babel 的官网 上查看各个提案目前都在哪个阶段了。其中Babel是JS兼容ES.Next的编译器。

— 引用文章 https://huangxuan.me/2015/09/22/js-version/

2、JS与TS

TS称为TypeScript,是微软优化JS编程的一种语言。TS是JS的超集,完全兼容JS的所有用法。相对JS的主要优势是:

1. 静态输入

静态类型化是一种功能,可以在开发人员编写脚本时检测错误。查找并修复错误是当今开发团队的迫切需求。有了这项功能,就会允许开发人员编写更健壮的代码并对其进行维护,以便使得代码质量更好、更清晰。

2. 大型的开发项目

有时为了改进开发项目,需要对代码库进行小的增量更改。这些小小的变化可能会产生严重的、意想不到的后果,因此有必要撤销这些变化。使用TypeScript工具来进行重构更变的容易、快捷。

3. 更好的协作

当发开大型项目时,会有许多开发人员,此时乱码和错误的机也会增加。类型安全是一种在编码期间检测错误的功能,而不是在编译项目时检测错误。这为开发团队创建了一个更高效的编码和调试过程。

4. 更强的生产力

干净的 ECMAScript 6 代码,自动完成和动态输入等因素有助于提高开发人员的工作效率。这些功能也有助于编译器创建优化的代码。

— 引用文章 https://www.cnblogs.com/powertoolsteam/p/typescript-vs-javascript.html

四、最终结论

Angular、React、Vue早期都是使用JS的主要开发语言,随着TS的热度及简易性,三大框架都已经兼容的TS的开发。TS让前端开发更简单易懂,JS过渡到TS是一个好的趋势,虽然TS+FRAME也会带来许多JS兼容性问题,但还不足以遮盖TS的优点。

基于许可的考量,选出了Angular与Vue。Vue大体是参考Angular框架的实现风格,Angular更像一个大的体系,注重功能的全面性。而Vue注重常用的开发模块,注重轻量性。所以得出结论:Vue.js 是轻量级的开发框架,很适合开发小规模灵活的 Web 应用程序;而 Angular 尽管学习曲线较为陡峭,但却是构建完整复杂应用的好选择。

— 引用文章 http://web.jobbole.com/94127/

发表评论

电子邮件地址不会被公开。 必填项已用*标注