已成为广受欢迎的前端框架。去年9月份,期待已久的angular2的正式版发布之后,angular又迎来了新一轮热潮。伴随着angular这一路走来,一直都是第一个全面支持各种版本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,解决了这个问题。事实上,他们也增加了一些东西供我们使用。
结束语
无论过程多么艰辛,做到了对angular 率先并且完美的支持,这一切就基于“开放”,两个产品组开放合作的心态,以及产品本身在开放和路线上的开放性。