通过选择合适的JavaScript框架来更好适配你的项目需求,这有利于提高你的开发能力与web apps的竞争力。
然后,你可以为基于JavaScript的应用或者网站想个极佳的主意。选择合适框架应该对你项目的成功有显著效果。它可以推到你及时完成项目,并且有助于你将来维护代码。JavaScript框架,比如Angular.js,Ember.js,或者React.js,能提供很好的代码框架,并且保持代码的组织性,从而使得你的app更具灵活性与可扩展性,开发过程更加容易。
Web开发变化速度非常快。几乎每个月都有一个JavaScript框架诞生,并且已存在的框架也在频繁更新。这些框架和开源代码一样,世界各大社区可以对它们进行完善。到头来,比较每个框架的优点与不同点,成了一件不容易的事情。
许多开发者都对JavaScript框架有着困惑,因为框架外表与功能差异很大。
下面,让我们来比较三大广泛应用于web的流行JavaScript框架的优点:AngularJs、ReactJs和EmberJs。
框架概览
框架 | AngularJS | ReactJS | EmberJS |
概述 | 主要的 JavaScript MVW 框架 | 主要用于构建用户界面,但不仅限于此的 JavaScript 库 | 一个用于创建复杂 Web 应用程序的框架 |
创立 | 2009 由 Mi?ko Hevery 创立 | 2013 年由 Jordan Walke 创立,开源 | 2007 年由 Yehuda Katz 创立,名为 SproutCore,2011 年被 Facebook 收购,更名为 EmberJS |
主页 | https://angularjs.org/ | https://reactjs.net/ | http://emberjs.com/ |
Github | https://github.com/angular/angular.js | https://github.com/facebook/react | https://github.com/emberjs/ember.js |
错误报告 | https://github.com/angular/angular.js/issues | https://github.com/facebook/react/issues | |
授权 | MIT | MIT | BSD-3-Clause |
使用该技术的知名网站 | Youtube, Vevo, Freelancer, Istockphoto, Weather, Sky Store | Facebook, Instagram, Khan Academy, New York Times, Airbnb, Flipkart, Sony Lifelog | Apple Music, Yahoo!, LinkedIn, TinderBox, Netflix, Groupon |
理想用途 | 建立调试活跃和互动的 Web 应用程序 | 数据变化频繁的大型 Web 应用程序 | 动态 SPA(Scratch Pad Area,暂存区) |
Angular.js是一个应用模型-视图-控制器(MVC)结构(Angular 1)的开源web应用框架,模型-视图-视图模型(MVVM)结构(Angular 2),版权归谷歌所有。它是以上最老的三大框架命名。因此,他拥有最庞大的社区。Angular.js通过径向扩展HTML功能,解决了开发SPA的问题(单页应用)。框架的突出特点是快速启动与运行你的app。
优点:
自定义文档对象模型(DOM)元素的创建。
明确的UI设计与替换。
当在一个HTML文档创建输入属性时,会为每个渲染属性创建一个独立的数据绑定。在发生变化需要重渲染之前,Angula先检测r页面的每一个明确属性。
依赖注解。
简单路径。
代码容易测试。
框架支持HTML语法的扩展,直接创建可复用的组件。
稳健的模板生成方案。在HTML属性使用绑定表达式来驱动模板功能。Angular的模板引擎拥有一个深度理解的DOM,它的优越结构模板减少了创建生成页面所需的代码量。
数据模型对于小规模数据的使用有所限制,其目的为了使得代码简单容易测试。
快速渲染静态列表。
良好的代码复用(Angular库)。
痛点:
API指令的复杂度高。
对于有元素相互调用的页面,Angular速度变得很慢。
初始设计变得慢起来。
由于大量DOM元素,影响性能。
复杂的第三方集成。
曲折的学习路线。
域容易使用,但是难以调试。
路径具有局限性。
提示:Angular 2 的功能与上述有所不同。Angular 2 没有沿用Angular 1 的设计,它彻底重写了。该框架两个版本有翻天覆地的变化,在开发商之间引起很大的争议。
ReactJS是一个开源库,利用其惊人的渲染性能来构建持久的用户接口,由Facebook推出与发布。React在模型视图控制器结构中专注“V”层。React首次发布之后,它迅速达到顶峰。它的出现是为了解决其他JavaScript框架的共同问题——渲染大数据集合的效率。
优点:
接口设计与学习API容易。
与其他JavaScript框架相比,具有显著性能。
更新速度快。React创建一个新的虚拟DOM,利用最近数据与比较上个版本的差异提供完善修复机制,创建一个最小的更新列表构成真正的DOM使其同步,而不是每次发生变化都进行重复渲染。
服务端渲染允许创建同构/通用的web apps。
容易导入组件,虽然有一些依赖。
更好的代码复用。
方便JavaScript的调试。
在提高复杂组件性能方面,Angular与React难分高低。
基于层次的全系组件。
JSX,一个JavaScript扩展语法,允许引用HTML与使用HTML标签语法来渲染子组件。
React Native 库。
痛点:
它不是完整框架,它是一个库。
非常传统的视图层。
Flux结构是开发者使用过的一个与众不同的范例。
大量开发者不喜欢JSX。
曲折学习路线。
集成React到传统MVC框架,犹如铁轨一样需要一些配置。
EmberJS 是一个开源的JavaScript框架,用以创建单页客户端web应用,使用模型-视图-控制器(MVC)模式。该框架提供通用数据绑定,基于网址驱动的方法用于构建不同应用,重点放在可扩展性上。
在2007年,Ember起源于SproutCore。在2011年,它被Facebook收购,重命名为Ember。它从本地框架例如苹果的Cocoa使用轻量灵敏性中,结合了成熟概念。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。 2KB翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务