开源框架这么流行的原因之一,就是围绕着他们,会有无数的工具、类库、扩展来支撑整个框架,有时,这些工具可能比框架本身更有帮助,接下来我们就来看看相关这两个框架最流行的工具和类库。
Angular Angular CLI现代框架的流行趋势是使用CLI工具,可以帮助您引导项目,而无需自行配置构建。Angular有Angular CLI。它允许您仅使用几个命令来生成和运行项目。负责构建应用程序的所有脚本,启动开发服务器和运行测试都会在node_modules中隐藏。您也可以在开发过程中使用它来生成新的代码。这使得新项目的设置变得轻而易举。
Ionic 2Ionic 2 是开发混合移动应用程序的流行框架的新版本。它提供了一个与Angular 2完美集成的Cordova容器,以及一个漂亮的材料组件库。 使用它,您可以轻松地设置和构建移动应用程序。 如果您喜欢使用混合应用程序,那么这是一个不错的选择。
Material design components如果您热衷于设计Material,您会很高兴听到Angular有一个Material组件库。
Angular universalAngular universal是一个种子项目,可用于创建支持服务器端渲染的项目。
@ngrx/store@ngrx/store是由Redux启发的Angular的状态管理库,基于由pure reducer进行突变的状态。它与RxJS的集成允许您利用推送更改检测策略获得更好的性能。
关于更多的有关Angular相关类库和工具可以参考:the Awesome Angular list
React Create React AppCreate-react-app 是一个CLI工具,用于快速创建新的React应用。可以生成一个新的工程,启动开发服务器并创建绑定。Jest(来自Facebook的一个单元测试工具)也同时集成在Create-react-app内部,更方便的让我们进行单元测试。
React NativeReact Native 是Facebook开发的基于React在移动端的开发平台,借助此平台,React可以创建真正的Native的UI。提供了一系列标准的React组件用于绑定。同时允许创建自己的组件并与Objective-C、Java或者Swift的代码进行绑定。
Material UI还有一个可用于React的Material Design Component。与Angular的版本相比,这个版本比较成熟,可以使用更广泛的组件。
Next.jsNext.js 是React应用程序的服务器端呈现的框架。它提供了一种在服务器上完全或部分呈现应用程序的灵活方式,将结果返回给客户端并在浏览器中继续。它试图使创建通用应用程序的复杂任务尽可能简单,所以设置被设计为尽可能简单,最少量的新原语和对项目结构的要求。
MobXMobX 是用于管理应用程序状态的替代库。不像Redux那样将状态保存在一个不可变的存储中,它鼓励您仅存储最低限度的必需状态,并从其中获取剩余的数据。它提供了一组装饰器来定义可观察和观察者,并将反应逻辑引入到你的状态管理代码中。
StorybookStorybook是React的组件开发环境。它允许您快速设置单独的应用程序来显示您的组件。除此之外,它提供了许多附加组件来记录,开发,测试和设计您的组件。
同样的,可以从Awesome React list了解更多的工具和类库。
学习曲线与开发体验
选择新技术的一个重要标准是学习它是否容易。当然,答案取决于广泛的因素,例如您以前的经验和对相关概念和模式的普遍了解。如果我们假设你已经知道ES6 +,构建工具和所有这些,我们来看看你还需要了解什么。
React有了React,你会遇到的第一件事就是JSX。对于一些开发人员来说似乎刚开始会觉得很别扭,但它并没有增加复杂性; 只是表达式,实际上还是JavaScript,还有一个特殊的类似HTML的语法。您还需要学习如何编写组件,使用props进行配置和管理内部状态。不需要学习任何新的逻辑结构或循环,因为所有这些都是纯JavaScript。
官方教程是开始学习React的好地方。一旦完成了官方教程,接下来应该熟悉并掌握React的路由机制 。React Router v4版本可能稍微复杂和非常规,但也不许太过担心。
使用Redux将需要一个范式的转变,免费入门Redux视频课程可以快速介绍核心概念。根据项目的大小和复杂性,找到并学习一些额外的库,这可能是棘手的一部分,但之后,一切都应该变得顺利。
其实,React的上手非常容易,最难的部分可能是如何挑选合适你项目或产品的类库。
AngularAngular将向您介绍比React更多的新概念。首先,您需要使用TypeScript。对于具有静态类型语言(如Java或.NET)经验的开发人员,这可能比JavaScript更容易理解,但对于纯JavaScript开发人员,这可能需要一些额外的学习。
框架本身丰富的技术主题可以从诸如模块,依赖注入、装饰器、组件、服务、管道、模板和指令等基础开始,到更高级的主题,如更改检测,区域,AoT编译和RxJS。这些都在文档中。RxJS是一个很重的话题,在官方网站上有详细描述。虽然在基本功能层面上使用起来相对容易,但在转到高级应用时会变得更加复杂。
总而言之,我们注意到Angular的进入壁垒高于React。新概念的数量绝对令新来者感到困惑。又是碰到一些问题还不得不Google后才能找到答案,但是,就像之前说的,是否合适,还是取决于更多的因素。
前景 Angular
就在2017年的3月,Angular已经发布了4.0的版本(兼容2.x版本),关于为什么是4.0,官方的解释是因为Router这个主要核心组件的版本已经是4.0.0,如果Angular还用3.0会引起混淆,如下图:
4.0版本中主要是大幅度的减小了代码体积(60%),同时提高了加载的速度(肉眼可查的程度),同时报错的信息更清晰了。根据官方的文档,Angular的版本升级会以比较快的速度进行迭代
无论是大版本的6个月迭代,还是每周的hotfix,能看出Angular团队想用快速升级的策略迅速占领市场。
React反观React的升级倒是非常谨慎的,这从最新的v15.5.0的发布新闻博客中就能看出