Angular已成为广受欢迎的前端框架。去年9月份,期待已久的Angular2的正式版发布之后,Angular又迎来了新一轮热潮。伴随着Angular这一路走来,Wijmo一直都是第一个全面支持各种版本Angular的JS控件库,为Angular用户提供着最及时的表格、FlexSheet、图表、仪表盘、数据透视表等轻量控件.
那么,Wijmo是怎么做到紧跟Angular步伐的呢?
Angular1 时代
Angular1支持MVC或MVVM模式,提供模块化、双向数据绑定、语义化标签、依赖注入等等,大大的简化了前端应用程序的开发。Angular1一发布就引起了强烈的关注,尤其是它首次提出的“双向数据绑定”的概念受到了众多开发者的喜爱。
早在2012年,Wijmo就响应客户的呼声,发布了支持Angular1的版本,使得Wijmo成为第一个全面支持Angular1的控件库。
Angular2 的 Alpha 版
随着Web技术的不断发展,为了解决Angular1中的问题,Google决定开发Angular2。Angular 2不是 Angular 1 的一次升级,而是一个全新的、不同的、更高级的框架。
这时,Wijmo团队就决定率先支持Angular 2,因为支持Angular 2已是众望所归。这使得开发人员很容易在在他们的 Angular2 应用中集成 Wijmo 控件。
Wijmo控件是纯JavaScript的,这也使得对Angular 2的支持更容易些,产品组可以为支持Angular 2进行很简单的包装,这样Wijmo 的UI控件也可以脱离Angular 2组件包装而独立工作。这是一个很大的付出,但是Wijmo做到了对Angular 2的率先支持。
Angular2 的 Beta 版
历经了55个alpha版本之后,2015年12月份,Angular发布了beta版。意味着Angular2已经稳定。Beta版还是给开发者们提供了一个坚实的框架来构建他们的应用程序。
为了率先支持Angular,Wijmo开发团队和Angular开发团队展开了合作,Angular团队帮Wijmo解决了一些严重的问题。对Wijmo来说这是一个非常有趣的转变,从这个时候开始Wijmo就已经与Angular2保持了高度一致。
2016年3月份Wijmo产品经理Chris采访了Angular的负责人Brad Green,一起畅谈Angular相关的话题,也见证了Wijmo和Angular的密切合作。
Angular2 的 RC 版
2016年5月的NG CONF(Angular大会)在犹他州盐湖城举行,Angular团队结束了Angular2的beta状态,将其推进到了发布候选(Release Candidate)阶段。大会期间Angular团队成员登台,深入介绍了Angular 2,包括新的离线模板编译器,Angular CLI等。在第一天的会议上,Brad也介绍了支持Angular2的组件库Wijmo。
2016 Angular大会(NG CONF),Brad Green介绍Wijmo
Angular2 正式版
2016年9月15日,这对于Angular2来说是一个重要的日子,Angular2正式版发布了,在业界引起广泛关注。很多人认为Angular 2正式版有很多颠覆性的变化,是革命性。Angular 2系统架构中的核心概念包括模块、组件、服务、模板、数据绑定和依赖注入。
Wijmo在Angular2发布几个小时后就发布了支持Angular2正式版本的Wijmo。Wijmo为每一个UI控件都提供了Angular 2 组件。所有Angular 2组件都提供了完全声明性标记。
对有需要的属性提供了双向绑定的支持,还对定制绑定和一些组件提供了附加功能,比如对FlexGrid中的单元格模板,可以允许用标签指明单元格的内容。
Wijmo的Angular 2组件被封装为模块并且可以在Angular 2应用中作为NPM包被使用。遵循Angular 2团队设置的模式,在Angular2中使用Wijmo组件会感到非常熟悉。
一切的合作,都以“开放”为基础
Wijmo率先支持Angular2取得成功后,不少媒体采访到Wijmo的产品经理Chris,试图探寻Wijmo和Angular 能密切合作的奥秘,归纳起来,主要是以下两点:
“首先,Angular 2团队的开发和路线是十分开放的,这也就保证了我们可以紧跟他们的脚步。
其次,当我们遇到障碍时,Angular 2团队也很乐于为我们提供支持。我们和Angular团队建立了良好的友谊。我们也很享受和他们团队一起工作。我很感激他们的开放和支持。“
事实上,在提供对Angular 2的支持时,也遭遇了一些挑战。最大的挑战就是需要提供深度集成。由于Wijmo创建了包装,还需要解决如何平衡Angular 2组件的作用和声明性标记,所以我们编写了大量的代码,来促使我们的控件能够完全的用标记的方式配置,还创建了具有Angular特性的功能,比如FlexGrid中的单元格模板。这允许客户编写自定制的标记,在表格的每一列中使用。
为了做到这样,产品组需要深度理解Angular是如何工作的,同时必须要使用其内置的APIs。我们和Angular 2团队一起工作,使用公共APIs,解决了这个问题。事实上,他们也增加了一些东西供我们使用。
结束语
无论过程多么艰辛,Wijmo 做到了对Angular 率先并且完美的支持,这一切就基于“开放”,两个产品组开放合作的心态,以及产品本身在开放和路线上的开放性。