转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。php
尽管 Web开发的典型应用场景除了将服务器用做平台、浏览器用做客户端以外,几乎不多活跃于其余业务领域,但不能否认JavaScript 语言和框架的使用已经成为了主流。Angular、React 和 Vue,做为 JavaScript 的三大框架已逐步发展成熟,三者的差别性也愈加明显,假设JavaScript还会继续流行十年左右,将来十年,你将会做何选择?前端
AngularJS 自2009年诞生,至今已有十年历史。在这短短十年中,其对 Web 社区的发展产生了十分深远的影响。做为一款优秀的 JavaScript 框架,在其推出一年后,便在全球引发了普遍关注,现在更是在Google的 600 多款产品中得以成功运用,如Firebase控制台、谷歌分析、谷歌快车、谷歌云等。vue
AngularJS有着诸多核心特性,包含:MVC(Model–view–controller)、模块化、自动化双向数据绑定、语义化标签、依赖注入等。Angular 最新版 7.0.0 已于2018年10月发布,下一版本预计将于今年第二季度正式上线。如下是Angular 7 针对性能、命令行工具和Material Design组件的优化项:ios
Angular 7 虚拟滚动web
Angular 7 拖放效果编程
Angular的出现,在Web社区引起了强烈轰动。两年后,Facebook 也推出了一款一样具有丰富功能的JavaScript UI组件库——React。axios
使用React,意味着您将用一种更简约的方式开始前端开发,这也是大部分开发人员所期待的:浏览器
很少,却正好够用,您彻底能够根据本身的须要,自由添加任何组件库,它们包括:安全
Google 和 Facebook 做为 Web 社区开源项目的主要发起者,彼此之间从未中止过竞争,尤为是关于 Angular 和 React 之间的辩论已经持续了四年之久。但严格来讲,将Angular与React进行比较并不彻底公平,由于Angular是一个功能齐全、组件丰富的框架,而React只是一个UI组件库。为了解决这个问题,咱们将就 Angular 框架中的一些经常使用组件库与 React 进行对比。前端框架
Angular提供了比React更多开箱即用的功能,如:
其中,依赖注入等功能做为 Angular 的核心,您没法选择不使用它们,这好像一把双刃剑,在带来强大功能模块的同时,也使得Angular 变得愈来愈笨重。
固然,Google工程师已经意识到了这个问题,也在必定程度上致力于简化Angular框架的复杂性,但愿在 Angular 8 中能让人耳目一新。
在React 与 Angular孰优孰劣的讨论逐步升温的时候,另外一个JavaScript框架Vue抵达了现场,使得这场最优Web开发框架的角逐变得更加白热化。
Vue.js 是由Google的核心开发工程师——尤雨溪(Evan You)所建立的框架,做为一个比 React 和 Angular 都更年轻的框架,Vue 从它们那里借鉴了好的部分,即函数式和面向对象编程的混合体。2014年2月(在微软收购GitHub平台四年以前),Evan You在GitHub上发布了第一个稳定版本的Vue,标志着一个构建数据驱动的 Web UI的渐进式框架就此诞生。
尽管没有获得谷歌和Facebook等科技巨头的支持,但自2018 年以来,Vue一直受到开发者的普遍关注。从去年几大主流前端开发框架的热度来看,大多数知晓 Vue 的开发者都表示有兴趣学习它。
也许,那些已经熟练掌握Angular和React前端框架的开发人员也应该花些时间去了解一下这个简单、小巧、省心的前端框架,但愿下面的内容能对你有所帮助。
若是前端框架的学习不包含TypeScript(即使 TypeScript 一般被认为是JavaScript的增集,但要彻底掌握仍须要学习额外的类处理过程),那么 React和Vue的学习速率都高于Angular。
相对于 React,许多初学者认为Vue的学习成本更低,由于它提供了更加丰富的资源文档和中文支持。事实上,Vue和React学习速率的实际状况是大体相同的,因为大部分Vue的学习资料直接以单个Web应用程序的开发实践开始,直观且清晰的代码逻辑的确能够帮助初学者更快入门,可是,随着学习内容的深刻,当您须要开发复杂的Web应用程序时,花哨灵活的指令和逻辑反而会让人以为Vue比React更难掌控。
React是一个已经存在近十年的Facebook开源项目,所以它拥有更加成熟的技术社区支持。尽管 Vue 已经成功地在短短几年间吸引了至关多的追随者,但在它真正创建出一整套完善且丰富的生态系统以前,仍须要更多人和时间的打磨。
当你看到许多使用Vue完成的项目时,你会注意到,其总体的设计理念更趋向现代化,这是由于 Vue 还是一个相对较新的框架,好比,这个示例。
众多周知,React所包含的工具、组件库和代码包的数量更多,但Vue灵巧、精致和简单却更加使人印象深入。
前端几乎无安全可言!固然,这里所指的安全性,仅仅是 React 和 Vue 这两个框架之间的对比,相对于React,Vue更为小众且不一样,所以在面对大规模黑客攻击的时候,React更容易成为目标。
Vue和React一样都容易受到跨站点脚本(XSS)攻击,这也是Web应用程序中最为常见的安全漏洞。XSS攻击容许攻击者将客户端脚本注入到其余用户查看的网页中,以影响其关联的任何JavaScript Web应用程序。
PS:缓解此问题的最佳方法是将数据保存在脚本以外,加入黑名单机制并从白名单中进行数据验证。
这也是争议最大的地方。React 专一于 UI,因此在构建 UI 组件时能够从它那里得到很好的支持。Vue做为一个渐进式框架,只容许使用最基本的功能来构建应用程序,但同时也提供了一些开箱即用的东西:如,用于状态管理的 Vuex、用于应用程序 URL 管理的 Vue Router、Vue 服务器端渲染。
Vue剥离了许多元素,相比之下React更加全面。但若是您正在寻找一种精简、新颖、简单易学、样板代码少、高性能、灵活且完整的前端框架,Vue更加适合;固然,若是您打算使用低版本jQuery代码,Vue也一样支持。
React的灵活性则更多依赖于其背后强大的技术社区,在 Facebook 的强力支撑下(Facebook 的 React 团队包括了 10 名专职开发人员),提供了更多工具、UI库和教程。
若是您的开发理念更趋向全栈文化、跨平台、保持独特、引领潮流而不是跟随,那么您必定会喜欢Vue;但若是您的项目须要大量熟练使用该框架的前端开发者、大量的工具及第三方库,那么您最好使用React。不太小孩子才作选择,您最须要的应该是一个全面兼容 Angular、React和Vue的前端开发工具包——WijmoJS。
截至2019年初,Angular、React和Vue之间的竞争持续升温,愈来愈多的开发人员开始抛弃Google项目,就商业开发工具的提供者而言,Vue的将来一片光明。
为开发速度更快的 Web 应用程序而选择了Vue的人有明显的增加,Vue 颇有趣,开发起来也很简单。虽然,React依托于其庞大的生态圈,在目前为止,处理更复杂的 Web 项目时占据优点,但随着前端社区内大量 Vue 追随者的出现、Vue 社区稳定增加的良好氛围,都在暗示着 Vue 很快就会变得像 React 同样受欢迎。
做者尽可能保持着公正的态度,客观地分析了上述三个前端框架,而做为前端开发者,面对 Angular、React 和 Vue,你会做何选择?为何?若是您有任何问题或意见,欢迎在文末回复讨论。