1.3 Angular 概述

了解了TypeScript,我们再来看看Google的Angular。 Web开发中,HTML+CSS+JavaScript是必须用到的三种技术,HTML用来声明前端页面元素,CSS用来描述展示样式,JavaScript用来控制页面逻辑交互。当Web应用逐步变得复杂时,JavaScript会随着项目代码量的膨胀而难以维护和管理。因此出现了一些类库(如JQuery、Dojo等)或框架(如ExtJS、knockout、Backbone等)来提升开发效率,方便后续的维护和管理。Angular就是为了克服HTML在构建动态应用上的不足而设计的。

1.3.1 Angular简介

AngularJS诞生于2009年,最初用来构建Google内部的项目,被用在Google的多款产品中。最为核心的是特性是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。AngularJS使用Directive(指令)的结构扩展了HTML的语法,通过编译技术实现了数据模型与展现视图间的双向自动同步,避免了前端开发中频繁使用JQuery操作DOM的方式。如果熟悉WPF的话,会感觉这种方式与WPF的MVVM开发模式很相像。这种双向数据绑定的方式可以实现良好的前后端分离方案,使开发者更专注于业务逻辑本身,而不是去操作DOM。AngularJS很适合开发CRUD类型的业务系统,但不适合游戏等需要频繁操作DOM的项目。

随着AngularJS的迅速发展,越来越多的开发者开始选择使用AngularJS。Ionic团队也选择了在AngularJS之上构建了Ionic的1.x版本。

但是AngularJS 1.x也逐渐暴露出一些问题,在数据量大的情况下,受限于AngularJS的检查机制,渲染会变得较慢。在1.x的性能难以继续提高的情况下,2014年末Google宣布Angular2将会对AngularJS完全重写。为了重写Angular2,他们甚至创建了一个全新的语言——“AtScript”,也是JavaScript的超集,添加了装饰器等特性。

有意思的是,Google发现了微软的TypeScript,二者如何携手我们无从得知,结果Google放弃了自家的AtScript,微软也答应为TypeScript增加了对装饰器(注解)的支持,Angular2转而采用TypeScript进行开发。两种新技术的碰撞产生了火花,极大的促进了前端开发的变革。

在Angular2发布之初,Angular团队宣布不兼容一代版本,导致了开发者的大量吐槽,但是笔者认为这是值得的,重新设计的Angular2拥抱了TypeScript,借助现代化Web平台的力量进行优化,获得了高效的生产率及性能。对于从后端C#开发转过来的开发者来说,上手Angular2会感觉非常简单。

目前Angular仍然在迅速的迭代更新中。

1.3.2 Angular2的新特性

Angular的主要特性如下:

  • 跨平台。支持渐进式Web应用(Progressive Web Apps),借助现代化Web平台的力量,实现高性能、离线化、零安装。还可以用来构建原生移动应用,并且能够应用于桌面环境,如Mac、Windows及Linux平台。
  • 强大的速度与性能。通过Web Worker和服务端渲染,达到目前Web平台上所能达到的最高速度。基于RxJS、Immutable.js和其它推送模型,能适应海量数据需求。Angular支持node.js、.NET、PHP等多种服务器。此外还提供了新的组件路由,能够实现快速加载。
  • 高效的生产率。Angular提供了简单的声明式模板,使用自定义组件和大量现有组件,大大丰富了模板语言,能够快速创建UI视图。此外还提供了命令行工具,能够快速添加组件、进行测试并部署。Angular支持IDE和编辑器的智能感知、代码补全、实时错误反馈等特性,提高生产率。

本书不是Angular的开发手册,不会从头介绍如何构建一个基本的Angular应用——实际上Ionic已经替我们做好了这一切,你无须关心如何配置Angular,这也是Ionic提供给开发者的生产力表现之一,开发者只需要专注业务逻辑即可。

results matching ""

    No results matching ""