请选择 进入手机版 | 继续访问电脑版

设为首页 收藏本站
思科社区 关注
思科社区

   思科 CCO 登录 推荐
 找回密码
 立即注册

搜索
热搜: 邮件服务器
查看: 577|回复: 1

【原创翻译】一份全面的React、Angular和Vue.js比较指南(2)

[复制链接]
发表于 2019-11-11 17:11:56 | 显示全部楼层 |阅读模式
框架与库的区别
Angular是一种框架,它为建立完整的安装应用程序提供了一个良好的开始。您不必查看各种库、路由方案和其具体结构,就能快速地开始构建。而在另一方面,React和Vue却比Angular要更具灵活性和普遍性。
运用React,您可以实现配对、交换等多种集成方式,也可以将各种库与其他外部工具进行整合。可见,React的灵活性实现了开箱即用(out of the box)式的无缝集成。不过也正是因为该特点,React错误的几率、以及依赖项也就更多。
相对而言,Vue是最纯净的框架。它通过内部依赖性、和灵活性的完美平衡,有助于提高您的代码效率。它是一种旨在简化web开发的非常简单、且直接易用的JavaScript框架。
其他需要考虑的重要方面
Angular会涉及到依赖注入(Dependency Injection),即一个对象为另一个对象提供各种依赖。这将使得代码能够更加简洁,更加易懂。另一方面,Angular是基于MVC架构的,而MVC模式会将项目拆分成模型、视图和控制器三种不同的组件。不过,React并没有此类概念,它只被用于为应用程序构建视图。
性能方面,哪个更好?
React和Vue都具有虚拟文档对象模型(Virtual DOM),而Virtual DOM有着性能方面的优势。凭借着良好的结构,Vue在性能和内存分配方面表现不俗。React紧随其后,而Angular则此局胜出。
由于性能取决于各种因素,这里的三种框架实际上已经比其他JavaScript框架要快得多了。因此,鉴于应用程序本身的大小和代码的优化程度不同,您不应该仅从性能方面下结论。
原生应用程序的开发
一般原生应用程序是为某个特定平台所构建的。您可以使用React Native为iOS和Android开发原生应用。而Angular的NativeScript已被原生应用所采用,特别是Ionic框架已经被广泛地运用在制作混合应用等方面。
不过,Vue的Weex平台正在开发之中,而且目前看来尚无下一步使之成为全面跨平台的计划。
哪个平台提供了简单的学习曲线?
Angular和React都有着自己的一套处理方式,而Vue则相对简单一些。这也就是为什么许多公司都转向Vue的原因。在使用Angular或React进行开发前,我们需要具有扎实的JavaScript知识,而且经常需要对第三方库做出选择。
如果您的应用程序体积较大,在Vue中涉及到了大量代码的话,那么不仅是编码,包括调试和测试都可能会碰到,由于在其中使用了老式的JavaScript实现方式所带来的问题。
另外,Angular能够提供相当翔实且清晰的错误信息,以帮助开发人员解决各种问题。
单向数据流与双向数据绑定
双向数据绑定是指将UI字段动态地绑定到模型上的一种机制。当UI的各种元素发生变更时,其模型数据将相应地发生变化。另一方面,单向数据流则意味着只有单一的数据来源--模型。应用程序的数据遵循同一方向流动,只有模型才能更改应用程序的状态。这是React和Angular的主要区别之一。
显然,单向数据流不但易于理解,而且具有确定性;而由于双向数据绑定的复杂性,它不但难以被理解,而且在实现上也一定的困难。
因此在此方面,Angular使用的是双向数据绑定,React用的是单数据流的,而Vue则支持两者。此处重点在于:Angular的双向方法提供了高效的编码结构,从而方便了开发人员的发现和使用。而React针对数据的单向管理,提供了更好的概述和理解。
微应用和微服务的兴起
目前,微应用和微服务技术正方兴未艾。React和Vue的灵活选择性,对于应用程序来说是非常重要的。在React和Vue环境中,您只需要将各种库添加到源代码之中便可。由于Angular使用的是TypeScript,因此它更适合与单页Web应用(single page web application,SPA),而非微服务。相反,React和Vue的灵活性更适合微应用和微服务的开发。
最后应该如何选择?
如果您追求灵活性胜过功能性的话,请使用React。
如果您喜欢在编码中使用TypeScript的话,请使用Angular。
如果您是个JavaScript爱好者的话,请根据JavaScript来选择使用React。
如果您是个整洁的代码控,请在应用程序中使用Vue。
Vue提供了最简单的学习曲线,因此它是初学者的理想选择。
如果您想在应用程序中关注点分离(Separation of Concerns),请使用Vue。
如果您喜欢面向对象的编程,那么Angular绝对是您的最佳选择。
另外,Vue往往是一些小团队和小项目的理想选择。如果您的应用程序体积较大,而且有着未来的扩展计划,那么请选择React或Angular。
对于跨平台应用程序的开发而言,React Native是个不错的选择,因为它提供了各种现代化的功能,您可以轻松地找到对应的资源。而对于Angular来说,您需要拥有对 于JavaScript的全面知识,以构建出各种大规模的应用。
React、Angular、Vue.js的比较速览

  Angular
  
  React
  
  Vue
  
  类型
  
  单一框架
  
  要构建UI
  
  单一库
  
  选择理由
  
  如果要使用TypeScript
  
  如果您采用“一切皆是 JavaScript”的方法
  
  简单的JavaScriptHTML
  
  创始者
  
  Google
  
  Facebook维护
  
  由Google前员工创建
  
  初始发布时间
  
  20169
  
  20133
  
  20142
  
  应用程序类型
  
  如果您想开发原生应用程序、混合应用程序和 web 应用程序
  
  如果您想开发单页Web应用和移动应用
  
  高级单页Web应用和支持原生应用程序
  
  理想场景
  
  如果要关注于大型的、功能丰富的应用程序
  
  适合于现代web开发和原生渲染的iOSAndroid应用程序
  
  web开发和单页应用程序的理想选择
  
  学习曲线
  
  陡峭的学习曲线
  
  比Angular容易一点
  
  平缓的学习曲线
  
  开发者友好程度
  
  如果要使用基于结构的框架
  
  如果您希望在开发环境中具有灵活性
  
  如果您关注点分离
  
  模型
  
  基于MVC(模型-视图-控制器)体系结构
  
  基于虚拟文档对象模型(Document Object Model)
  
  基于虚拟文档对象模型(Document Object Model)
  
  编写方式
  
  TypeScripte
  
  JavaScript
  
  JavaScript
  
  社区支持
  
  有庞大的开发者和支持者社区
  
  Facebook 开发者社区
  
  通过众包来赞助开源项目
  
  语言首选项
  
  建议使用TypeScript
  
  建议使用JSX-JavaScript XML
  
  HTML模板和JavaScript
  
  普及程度
  
  广受开发者欢迎
  
  去年增加了超过2.7万颗星
  
  去年在 GitHub 中增加了4万多颗星
  
  使用的公司
  
  Google、Forbes、Wix weather.com
  
  Facebook、Uber、Netflix、Twitter、Reddit、Paypal、Walmart和其他
  
  阿里巴巴、百度、GitLab 和其他
  

综上所述,我们在不偏向任何一种框架的前提条件下,向您展示了三种框架的对比,相信总有一款能够满足您的要求。如果我们在文中遗漏了任何要点或概念,请在下方通过留言和评论的方式告诉我们。谢谢!
【原标题】React vs. Angular vs.Vue.js: A Complete Comparison Guide(作者: Ankit Kumar
原文链接:https://dzone.com/articles/react-vs-angular-vs-vuejs-a-complete-comparison-gu  

  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分0 (0 评价)
发表于 2019-11-12 18:15:48 | 显示全部楼层
感谢版主分享,谢谢~

在此共享您的相关主题:
【原创翻译】一份全面的React、Angular和Vue.js比较指南(1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5
平均得分0 (0 评价)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver | 思科社区  

GMT+8, 2019-12-11 22:00 , Processed in 0.107795 second(s), 30 queries .

京ICP备09041801号-187

版权所有 :copyright:1992-2019 思科系统  重要声明 | 保密声明 | 隐私权政策 | 商标 |

快速回复 返回顶部 返回列表