技术开发 频道

相继发布新版本,Vue与Angular较量再升级!

  【IT168 评论】竞争不仅存在于编程语言之间,框架之间的对比也是无处不在。Vue早期的开发灵感来源于Angular.js,虽然新的Angular的许多实现都已经重写,但是双方在语法方面仍有很多相似性,自然避免不了对比的命运。

  2017年10月14日,Vue.js 2.5发布,时隔半个月,Angular 5也正式可用了。本就是彼此竞争的常客,如今版本发布时间这么相近,新一轮的竞争俨然已经开始。

  Vue.js 2.5发布

Vue.js 2.5 发布,与Angular竞争再升级

  经过不断的更新和发展,Vue已经成长为最受欢迎的框架之一。 Vue 2.5 Level E 发布,早先一直在传的有关TypeScript的改进,在这个版本中也获得了体现。接下来我们先来看一下,Vue.js的新功能包括哪些。

  更好的TypeScript集成:Vue.js 2.5大大改进了类型声明,Vetur 等编辑器扩展功能更强大,同时也为纯 JavaScript 用户提供更好的Intellisense 支持;

  更好的错误处理:Vue.js 2.5中引入了新的errorCaptured钩子。 具有此钩子的组件捕获其子组件树中的所有错误,其与React 16引入的错误边界概念相似。

  与环境无关的服务端渲染:Vue.js 2.5 中发布了一个与环境无关的 vue-server-renderer 版本,可以在浏览器或纯 JavaScript 引擎中使用。

  Vue的创始人尤雨溪在谈到Vue的理念时表示:“Vue有一个其它框架都没有的理念,那就是把高大上的思想变得平易近人。”没错儿,Vue一直以来也是秉持着容易上手和文档友好的观念来进行更新的。

  Angular 5发布

Vue.js 2.5 发布,与Angular竞争再升级

  Angular 5更专注于“smaller, faster, and easier to use”,这与Vue“平易近人”的理念不谋而合。新版本中拥有全新的构建优化器,默认情况下,在CLI创建production build时运行。据悉,该构建优化器主要有两个功能,其一是精简应用程序,它会标记应用程序的每个部分,然后删除不必要的部分。其二是在Angular运行时代码中删除Angular decorators,decorators是由编译器使用,在运行时并不需要。这些做法减少了JavaScript软件包的大小,并为用户提高了应用程序的启动速度。

  Angular 5.0允许用户通过Angular Universal State Transfer API和DOM共享应用程序的服务器端和客户端版本之间的应用程序状态。ServerTransferStateModule和BrowserTransferStateModule允许用户使用平台服务器生成有关信息,并传输到客户端。

  其它新功能还有很多,例如改进编译器以支持增量编译,支持TypeScript变换,支持decorators改进。

  相继发布新版本,双方较量再升级

Vue.js 2.5 发布,与Angular竞争再升级

  Vue与Angular从诞生之初似乎就难以避免被对比的命运,除了一些媒体和技术人员在对这两款框架做横向对比之外,前端时间某乎上Vue作者和Angular前官方布道者也真刀实枪的开战了。

  尤雨溪从CLI/工具链、异步加载模块、单元测试和集成测试、TypeScript、AOT & Treeshaking以及团队等方面对大漠穷秋进行了回应。本文不对两位开发者的言论做正确性的评判,只从该事件中窥一斑而见全豹,粗浅分析Vue和Angular两者之间的差别。

  首先,两个框架对于CLI的定位不一样,Vue-cli只是一个初始化工具,真正负责打包的是webpack配置和npm脚本,而Angular/cli是一个全包式的命令行工具。在对TypeScript的支持方面,显然以TypeScript为主导的Angular天然就有优势,Angular 5支持TypeScript变换,但是Vue也没有闲着,我们看到Vue自2.0版本就开始支持TypeScript,新版本中对于TypeScript的集成更进一步了。

  关于轻量级,毫无疑问轻量页面更适合使用Vue,而Angular虽然更适合重型应用,但也在轻量化方面做了一些尝试,其既可以选择组件化,也可以选择不组件化,仅以模板形式与数据结合。在团队方面,背靠Google这棵大树的Angular显然比Vue更具优势。

  写在最后

  “任何不以场景为前提的设计都是耍流氓,任何太不切实际的理想终将覆灭,任何想永存的都是临时方案。”框架之间的对比永远不是为了战胜某一个,而是相互促进、相互学习,帮助开发者和企业更好的开发应用。

0
相关文章