翻译原文链接https://blog.prototypr.io/react-vs-angular-two-sides-of-javascript-b850de22b413

  我的翻译小站http://www.zcfy.cc/article/3573

  在世界末日,技术的选择起着关键性的作用。拥有几年经验的积累,我们参与了几十种不同语言的翻译,框架,以及书。把我们的知识融合在一起,我们决定

去总结一些关于React&Angular的问题以及分享一些观点给大家。因此,在这篇文章中,我们将转换我们的【前端开发】经验在一些事情上,希望它能够帮助你决定

哪种技术更加适合你。

什么是Angular 2?

  Angular是一个开源的JavaScript框架,提供创造客户端网站需要的一切东西。在Angular 2开发期间,你可以看到第二版本相对第一版本摆脱了不必要的复杂性。

  例如,Angular2团队几乎摒弃掉了第一版本的所有观念,我主要讲述模块,控制器,scopes,指令等。

从我们相关的文章中,不仅可以扩展我们的编程技巧,同时能够掌握软件开发的一些方法。(https://www.cleveroad.com/blog/a-fresh-take-on-5-software-development-methodologies)

  然而,他们依然没有停止让他们的框架变得简单。他们还添加了一些新的显著特征和做了一些提高。在这些特点里,我们可能喜欢单个的应用程序支持

以及服务端的渲染。关于这些改善,我们无法忽略Angualr2性能提高的事实。

为什么它变得这么受欢迎?

  • Angular是谷歌团队自己想象创造出来的

  • 设计的方式允许程序员在基于其它语言之后,学习angular时,不会太痛苦。

  • 许多程序员指出,如果你的angular看起来很复杂—你在做一件错误的事

  基于Angular构建的网站: YouTube (for PS3), GoodFilms, Freelancer, Upwork

  那么,为什么angular2有好处?让我们一起看下关于它的赞成和反对的意见。

cleveroad-angular优势和劣势

什么是React?

  不像Angular,ReactJs是基于JSX写法的一种JavaScript的开源库。它主要专注于用户接口,允许创造可复用的UI视图组件。

  当使用React的时候,你要记住它不再是MVC的框架,而是一种渲染视图的库,在这种方式下,利用React接口集中方式,

使用者可以得到一种高度响应且平滑加载的体验。

为什么它变得这么受欢迎?

  • 项目基于facebook的标准

  • 搜索引擎对于ReactJs问题的解决方案比较友好

  • ReactJs的操作以及灵活性很高

  有名的ReactJs构建的网站: Netflix, Feedly, Airbnb, Walmart

  现在,让我们考虑一下为什么ReactJS在我们一定的需求上,能够很有用。

cleveroad-React的优势和劣势。

我们要如何去选择呢?

  现在,让我们深入探讨一些细节,这对于我们技术的选择非常重要。

许可证

  你应该了解到这些框架的秘钥是否被颁发。大部分的秘钥是非常灵活的,并且你可以使用他们创造一些被承认的apps,没有任何的问题。

然而,有些类型的秘钥限制了你的行为自由。做一些简单的研究比学习一些没有商业分配权利的产品更好,对吗? 

 注:Angular和ReactjS共同优点之一为两者都是开源的,且没有使用的限制。值得提到的是Angular使用MIT秘钥,而React使用3-clause BSD。唯一对于BSD

显而易见的不同是它禁止使用持牌人的姓名做广告用途。

MVC模式

  模型-视图-控制器模式允许将一个项目的数据分离到三个组件里面:模型,视图以及控制器。这种方式下,由于代码分离,每一个组件的修改能够独立进行

增加了最终产品的质量。除了MVC模式,还有MVP和MVVM模式。 

 注:在Angular2的所有特点之中,脱离盒子的可利用的MVC模式是很重要的优点,远在react之上。由于它的缩写只有三个字母,所以只有“V”-view。

如果你需要”M”和”C”,你应该看看其它地方来解决问题。

模板

  关于Angular2的好处,值得提到的是它易于显示模板的编写。对数据具有非常直观的UI,Angular允许你调用接口,用更直观的方法来得到结果。以及要求更少

的代码量和更加显而易见。对于React,它需要特殊的函数来管理这些数据的显示。大部分,它意味着你应该定义一种方式在DOM渲染之前,来将你的数据呈现出来。

在它试图将某一元素进行渲染期间,这也许会导致断开。

 注:在线服务创建时,你要做的百分之八十是编写它的UI。因此,你最好权衡这些技术模板的方法,来找出最合适你的编码操作的那个。

数据绑定

  Angular使用双向绑定,有了它的帮助,这个框架可以通过控制器将DOM连接到模型数据。一句话来总结,当用户进行输入,并给APP赋予新的值,不仅试图被更新

数据也会立马更新。因此,你不需要在APP内,写一些方法来追踪这些变化。

 注:Angular绑定的自动监听方法,运作很好。

  React使用单向绑定,数据流只会在单个方向进行。由于这个,你会经常注意数据改变的地方。

 注: React的方法非常易于大应用程序的调试。

  值得说一句关于 客户端 vs 服务端渲染。事实上,Angular第一版本使用的是服务端渲染,给市场创造了一定的困难。由于浏览器将客户端渲染视为JavaScript,具有

优化SEO的纯粹机会。这是一个很大的劣势,因为大多数数字产品需要大量的营销能力才能生存下去。同时,客户端渲染可能会影响页面加载,然而,从第二个版本开始

Angular开发者已经解决了这个问题 将它的渲染模型放在服务端。

性能

  众所周知,Angular创造数据绑定监听,为了追踪到DOM里面的所有变化。只要这个页面有所更新,Angular开始比较获得的值与原始的值。事实是这个技术不仅检查这

些值的变化,同时还监听他们所有的变化。

注: 当应用在大量的应用程序上时,Angular2性能可能引起一些问题。

  ReactJS开发者已经介绍了 虚拟DOM观点,允许创造轻便的DOM树。每次用户与网站进行交互时,列如填充表单,React创造虚拟DOM来与之前的值做比较。框架库

发现这两种模型的不同之后—-虚拟DOM将被重建。所有的进程都在服务之内执行,在这种方式下,减少浏览器的加载。

 注: 当面对大量的数据时候,由于没有监听,ReactJS性能增加。

  我们已经编制了图表,显示了这些技术的评价标准。这些分数是根据我们的个人经验而定的。

cleveroad评价技术

  我们有一个关于React vs Angular问题的小会议,我们的前端开发人员有机会讨论所有这些技术的优缺点。

  他们总结出Angular更加适合他们代码操作,对于他们日常的工作任务来说。

  总上所述,我们为你准备了一张图表,这里,你可以发现Angular1.x, Angular2和React的比较。

React vs Angular版本

Cleveroad的经验

  在这两种技术之中,我们的程序员更喜欢用Angular网站开发。有许多与这个框架相关的基础,我们能够更高效的工作,减少项目的开发时间。
在这种方式下,我们的客户端由于缩短了开发周期,减少了项目的花费。

  我们基于这种技术的所有项目都有大量的前端逻辑在其结构中频繁变化。这些项目隐含着许多设计变更。React库的使用可以提高开发时间,提高最终产品的总价格。

  以下是我们的项目: Age In DaysCountLifetile. 所有这些Angular构建的网站在我们公司.

  您也可以看看我们的技术堆栈,我们通常使用Angular2开发。

  服务端方案: AWS, DigitalOcean, Hetzner, Microsoft Azure

  后端技术: Node.js + Typescript 2, Angular 2

  数据库: MySQL, MongoDB, Redis, PostgreSQL

  云存储: AWS S3, Azure storage

  支付: Stripe, Braintree

  基础设施和项目管理: Webpack 2, Docker and CI, Jira, Bitbucket/Git

结尾

  也许,在前端世界中,选择Angular和React之间的问题,在某种程度上可以与iOS和Android之间的选择相媲美。我的意思是,两者技术都有优缺点

它的追随者和厌恶者。因此,每个开发人员都有一定的原因,使用reactjs或其他技术。

  在2017年,越来越多的网站项目将会基于Angular2,因为允许简化开发者开发的特点。列如,好的调试工具,MVC模式,服务端渲染等。因此,它将减少

开发所需的时间,从而降低开发和维护的定价。

  如果你有其它问题 — 请 contact us, 这是免费的!

【翻译】React vs Angular: JavaScript的双向性的更多相关文章

  1. React vs Angular 2: 冰与火之歌

    黄玄 · 3 个月前 本文译自 Angular 2 versus React: There Will Be Blood ,其实之前有人翻译过,但是翻得水平有一点不忍直视,我们不希望浪费这篇好文章. 本 ...

  2. React和Angular

    React和Angular 你若装逼,请带我飞! 从前,从前,听说React只负责UI,话说写Angular代码就像写后端,现在看来,React赢在情怀上了: 我认为没必要老是拿React和Angul ...

  3. Vue.js vs React vs Angular 深度对比[转]

    这个页面无疑是最难编写的,但我们认为它也是非常重要的.或许你曾遇到了一些问题并且已经用其他的框架解决了.你来这里的目的是看看 Vue 是否有更好的解决方案.这也是我们在此想要回答的. 客观来说,作为核 ...

  4. vue、react、angular三大框架对比 && 与jQuery的对比

    前端当前最火的三大框架当属vue.react以及angular了. 但是在做项目的时候,我们怎么去选择呢?  这里做一个比较,希望大家可以有一个比较清晰的认识. vue与react vue和react ...

  5. vue、react、angular三大框架对比

    前端的三大框架当属vue.react以及angular了,个人比较偏向react,它的社区比较繁荣,有很多丰富的组件 .angular的话感觉编译时间有点长,等待很恼火. vue与react vue和 ...

  6. React vs. Angular vs. Vue

    原文连接 历史 React是一个用于构建Web应用程序UI组件的JavaScript库. React由Facebook维护,许多领先的科技品牌在其开发环境中使用React. React被Faceboo ...

  7. React Native – 使用 JavaScript 开发原生应用

    前不久,Facebook 在F8开发者大会上正式开源了 React Native 项目.不过目前只有 iOS 版,Android 版还需要再等一段时间,这是最新的用 JavaScript 语言开发原生 ...

  8. React 和 Angular 各有什么优缺点,各自又适合什么开发场景?

    最近正在学习React,便谈一点自己的浅见. Angular.js首先Angular的背后是Google,所以社区基础是不用担心的,整个生态也已经是非常的完整了,从最基本的Tutorial到Stack ...

  9. Vue-起步篇:Vue与React、 Angular的区别

    毋庸置疑,Vue.React. Angular这三个是现在比较火的前端框架.这几个框架都各有所长,选择学习哪种就得看个人喜好或者实际项目了.相比之下, Vue 是轻量级且容易学习掌握的. 1.Vue和 ...

随机推荐

  1. Sql的连接表补充

        连接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定连接条件.WHERE和HAVING子句也可以包含搜索条件,以进一步筛选连接条件所选的行.             连接可分为 ...

  2. 我的第一个jQuery插件--表格隔行变色

    虽然网上有大量的插件供我们去使用,但不一定有一款适合你的,必要的时候还是要自己动手去敲的.下面,开始我的第一个插件... 参考<锋利的JQuery>,JQuery为开发插件增设了俩个方法: ...

  3. Android之使用JAVA占位符格式数据(很实用)

    小编虽然是学java出生,但工作之后就一直从事android开发,很多java基础都忘记完了,最近一年从ES换到了AS,原来的很多习惯都收到了挑战,比如我喜欢ES写方法的时候先在JAVA projec ...

  4. JAVAEE——struts2_04:自定义拦截器、struts2标签、登陆功能和校验登陆拦截器的实现

    一.自定义拦截器 1.架构 2.拦截器创建 //拦截器:第一种创建方式 //拦截器生命周期:随项目的启动而创建,随项目关闭而销毁 public class MyInterceptor implemen ...

  5. 在vue 中使用Stylus

    概述 什么是Stylus Stylus是一个CSS预处理器. 什么是CSS预处理器 关于CSS预处理器,推荐先行阅读这篇文章:为您详细比较三个 CSS 预处理器(框架):Sass.LESS 和 Sty ...

  6. jquery的几个国内CDN加速节点

    分享几个jquery的几个国内国外的CDN加速节点,方便广大的开发设计者调用和节约空间,官网的总是最新版本的jquery所以不用去担心版本更新问题,其他加速节点可能不会在更新版本,所以取舍问题自己决定 ...

  7. 统计dir_path下所有文件类型的文件数量

    #!/bin/bash #!文件名为countfile.sh ]; then echo "Usage is $0 basepath"; exit fi path=$ declare ...

  8. 技术分析 | 新型勒索病毒Petya如何对你的文件进行加密

    6月27日晚间,一波大规模勒索蠕虫病毒攻击重新席卷全球. 媒体报道,欧洲.俄罗斯等多国政府.银行.电力系统.通讯系统.企业以及机场都不同程度的受到了影响. 阿里云安全团队第一时间拿到病毒样本,并进行了 ...

  9. php根据经纬度获取城市名

    /*php根据经纬度获取城市名*/ function get_my_addr_infos(){ $ch = curl_init(); $timeout = 5; $lat = $list['info' ...

  10. yii 输出当前的sql语句

    <?php namespace app\controllers; use yii\web\Controller; use yii\data\Pagination; use app\models\ ...