在web开发的世界里,框架是很常见的东西,甚至每天都有新的框架和模板产生,你很难对它们都了解,你也很难决定应该使用哪一个框架。下面介绍几款web前端主流框架。
angular 2+
有什么优势?
angular 2+ 的 大优势在于它的流行程度。也有人认为它和 google 密切相关的名字,会影响团队使用它。angular 1 的迅速流行是因为那些来自其他交互式应用程序开发环境的人会发现对于开发单页面 web 应用程序具有相似的模型-视图模式。通过对 angular 1 进行现代化演变和重新构建框架的某些部分,angular 2+ 已经真正的爆发了,大量的正式的和非正式培训机构数量都让人印象深刻,开发者有很强的市场竞争力。对于用户来说它有一套用于构建用户界面的丰富组件,这也是本系列中少有的几个框架能够做到这点。
有什么弱点和挑战?
我们觉得 angular 框架着重于在单个页面应用程序中创建用户界面并没有处理构建完整的 web 应用这个更大的关注点,如果不及早确定下来,这将会导致整个项目难以维护,在实际项目中,运行时提供不属于核心框架的技术往往让人觉得不可思议,这大大降低了 typescript 对最终开发者的价值。
react + redux
有什么优势?
react 和 redux 的 大优势在于它们相对简单和专注。做一件事情并把它做好是非常困难的,但这两个库都很有效地完成了它们的目标。虽然对于某些状态容器方法可能是外部的,但大多数开发人员还是可以轻松掌握概念,并了解单向数据体系结构的好处,简化大量的用户界面应用程序。
有什么弱点和挑战?
react 和 redux 大的弱点不是它们是什么,而是它们不是什么。要构建一个功能丰富的 web 应用程序,你需要许多功能,一旦脱离 react 和 redux 和其他一些库的核心,你将发现一个非常分散的社区,拥有无数的解决方案和模式,不容易整合在一起。
因此,虽然 react 和 redux 都是非常专注的库,但缺乏经验的团队还是会很容易地生成不可维护的解决方案,而不是意识到他们所做的选择会导致性能不佳或错误。 即使有经验的开发人员也可能意识到,一个松散的架构或惯例可能会在未来困扰他们。
vue.js
有什么优势?
渐进式构建能力是 vue.js 大的优势,vue 有一个简洁而且合理的架构,使得它易于理解和构建。
vue 有一个强大的充满激情人群的社区,这为 vue.js 增加了巨大的价值,使得为一个空白项目创建一个综合的解决方案变得十分容易。
有什么弱点和挑战?
在模型-视图应用程序和状态容器类型的应用程序之间的互相转换可能会令人感到困惑,即使没有完美包含一个模式到另一个模式的完美转换,但让人感觉希望能维持两个模式的相关性。对于那些期待 vue.js 完美解决方案,并可能导致难以维护不一致的应用程序的人来说,这至少是令人困惑的。
一个更大的挑战是 vue.js 依赖于一个单独的人,很明显,其他的项目基本是由一个组织提供支持,但这让人感觉更加有意义,虽然它有一个强大文件的社区和许多有创新的新增项目,但是 vue 核心的开发基本落在一个人身上。
我们很高兴看到 vue 更加容易接受新兴的标准方法,但是它的类似于 web 组件的模式,而不是真正的 web 组件,这可能是 vue 所得不偿失的地方。
dojo 2
有什么优势?
dojo2 专注于带来更多构建在状态容器体系之上的动态组件的体验模式,填补了 react+redux 等框架的许多空白。
dojo2 也知道它不单单只是在自己的生态圈发展,通过包含 web 组件导入和导出功能,也意识到需要支持不同的应用实例,但它依旧提供了一个结构化和固有的框架价值,dojo2 的核心基础仍然是专注于提供交互性。
dojo2 觉得它提供了大量重要的功能和解决方案,这对于构建完整的 web 应用是十分重要的,对于其他大多数框架而言这并不是重点。提供一个国际化系统和广泛的易接入性的模式也是其中之一,同时也提供一个主题系统和演进模式,用以确保不仅能为 typescript/javascript 提供良好的代码开发,也能像 css 那样管理资源。
dojo2 专注于提供一个结构化和符合人体工程学的开发环境,通过使用 typescript 和其他开发模式,它试图提供安全的防护机制去引导新手开发人员,通过专注于提高框架开发效率和开发安全性,旨在让开发团队能够交付更好的 web 应用程序。
有什么弱点和挑战?
有争论的是,通过进一步延长 dojo2 的发布时间的做法是否是在阻碍框架的发展,反观其他项目由于其资源的扩大能够继续发展和迭代,导致 dojo2 目前明确的处在一个拥挤的竞争环境之中。
这也许是一个潜在的发展机遇和挑战,同时希望能够在灵活性和交互性上而不是别的特殊理由去使用 dojo2 。
ember
有什么优势?
ember.js可能是固执己见的主流框架,这也是其 大的优势。它有创建ember.js应用程序的正确方法,通常只有一种方法来创建应用程序。ember.js更类似于一个产品或平台,在那里你会到一个供应商的长期支持和维护。ember.js提供了对其平台的版本管理,升级工具以及对api升级的强大指导和工具。成熟,是对ember.js的一个很好的总结。
ember.js多年来已经证明,它可以保持其框架并使其与现代标准保持一致,同时不会过早遗忘传统浏览器。
ember.js有一个清晰合理的架构来构建web应用程序。
有什么弱点和挑战?
ember.js可能是固执己见的主流框架,这也是它 大的弱点。虽然社区是开放的并且接受投资,但是仍然需要找到一个正确的方式来摆脱下滑的趋势,这可能是具有挑战性的问题。
拥有一个丰富的第三方社区也可能具有挑战性。由于没有开箱即用的ux组件,这很可能会让你使用第三方套件。你可能会发现,虽然这些套件并不,你将需要建立或寻找其他组件。由于ember.js没有扩展,所以对如何交互和管理dom,你会发现你有不一致的部件,而且也没有提供一个易于管理的界面。
aurelia
优势在哪?
aurelia有很多关于构建web应用程序的方法,结构和想法。 这个框架的编写有很多技术上的优点。
有什么弱点和挑战?
我们估计 大的挑战就是核心发展的动力和临界物质的缺乏。我们感觉很多的观点和概念都是我们对其他框架的批评性的想法,但是这些愿望都没有完全交付。它似乎就像是一个正在进行的工作一样,就像dojo 2,但是它已经是一个已发布的框架。
大部分的aurelia是坐落在一个人的肩膀上,如果这个人的的注意力或可用性改变,那么将会带来挑战。
一个框架仅仅是一些模式的体现,一些科技的集成,源码帮助我们更加容易去构建和维护网站应用,如果你是个体开发者,我们能提供的 好的建议是花费尽可能多的时间使用那些你认为可以为你所用的框架。如果你是公司的管理者或骨干领导要去做决定,请记住特点列表只是决定的一方面,有时候并不是越多越好。挑战你自己活着你的团队使用一个整体的框架,但是首先,列出对你和你的组织重要的列表,尤其是那些技术之外特点。