日期:2014-05-16  浏览次数:20469 次

【翻译】对于Ext JS 5,你准备好了吗?

原文:Are You Ready for Ext JS 5?



Ext JS 5:准备升级

对于Ext JS 5加入Sencha的大家庭,我们感到非常高兴!作为一个主要版本,在Ext JS 5引入了一堆的新功能,包括:

  • 支持平板
  • 双向数据绑定
  • 新的NVVM应用程序架构
  • 小部件和部件列
  • 清脆的主题
  • 路由
  • 以及更多

如果想了解完整的新功能列表,请阅读《在Ext JS 5有什么新东西指南》。

如果想了解更多有关Ext JS 5的东西或咨询有关升级的问题,请在这里注册并参加我们在北京时间2014年4月25日1点(4/24/14 at 10am PDT,美国太平洋夏季时间,不知道有没有算错,自己再算一下)举办的一个小时的在线研讨会。


测试1,2,3

尽管在Ext JS 5有许多新功能,但很多都是在幕后的。随着Ext JS 5 beta版本的发布,我们希望能协助你的应用程序能通过以下几个方面为即将到来的GA版本做好准备。

通过Ext JS 5的升级核对清单,可以为每一个改变使用以下的评价系统来指示出升级过程的困难程度:


抛弃旧版本浏览器

Ext JS 5已经不再支持IE6、IE7和其他旧版本的浏览器了,这样可以显著减少跨整个框架的逻辑和样式设置。再加上额外的优化,Ext JS 5已经为企业级的Web应用程序迈出了惊人的一步。


Ext JS 5现在支持以下浏览器:

  • IE8+ (只支持标准模式)
  • Firefox 12+ (PC & Mac)
  • Safari 6+
  • Chrome 18+
  • Opera 12+ (PC & Mac)

许多开发人员都知道他们需要支持哪一种浏览器,因此,我们预期这个升级会很简单。


Doctype

在Ext JS 5中,另外一个很重要的改变是,我们建议使用HTML 5的doctype:

<DOCTYPE html>

省略doctype或使用不同的东西可能会导致起卦id行为,如不正确的显示、定位问题等等。IE8是支持HTML5的doctype的,而且新标准的doctype是向后兼容HTML4的,因此这对于Ext JS 5来说很有意义。

可以想象得到,这个升级相当来说也是比较简单的。如果你的应用程序中有大量的针对IE6-7的CSS,那要更改doctype就可能有点繁琐了。


Sencha Cmd

使用Ext JS 5,强烈建议你使用最新版本的Sencha Cmd来创建应用程序架构并管理生产的生成。

Ext JS 5框架现在是一个封装好的Cmd包,这意味着框架的“核心”部分现在是基于Sencha Touch完全模块化,甚至是共享的。

打开Ext JS 5 SDK,将会看到以下文件夹结构:


从包的名称就可以推断出以“ext-”为前缀的包是特定于Ext JS框架的(例如“ext-theme-neptune”),而以“sencha-”为前缀的则是跨框架的共享资源(如“sencha-core”)。

这将有助于你去熟悉这些包的定位,即使许多底层代码并没有改变。

已经在使用Sencha Cmd?

如果你的现有的运行在Ext JS 4.2.x的应用程序已经在使用Cmd 4.x,那么通过sencha app upgrade来更新应用程序会变得相对平滑。已经在使用Sencha Cmd来生成Ext JS应用程序的,在升级到Cmd 5.x的时候,应该会体验到影响非常小。如果需要了解更多详细信息,请参阅《Sencha Cmd 5升级指南》。


还没有使用Sencha Cmd?

如果还没有使用Sencha Cmd来生成应用程序,而只是为了采用Cmd的部分功能,简单的使用sencha generate app来创建一个新的应用程序并手动将/app/folder复制到新的架构。此外,在应用程序中已经使用了推荐的文件结构,只是使用“sencha generate app --starter=false”来app之上创建Cmd脚手架。

那么,要重新来使用Cmd可能会有一个预期的小的学习曲线,具体请参阅《Ext JS 5:入门指南》。

对于那些没有使用Sencha Cmd的用户,可在《Ext JS 5升级指南》中找到有关生成文件(如ext-all.js或ext-all-debug.js)的更多信息。


兼容层

使用Sencha Cmd的一个额外好处就是很容易控制新的兼容层,这有助于尽可能顺利的将4.x升级到5.x(以及未来的升级)。

Ext JS 5在如何获取已弃用的API标记部分引入了新的机制。为了修补应用程序从之前版本升级所造成影响,可以简单的在app.json文件中设置所支持的框架版本,并将过时的API作为警告输出到浏览器控制台。

例如,Ext.form.field.Trigger类在5.x是已被弃用,使用它将会抛出错误。如果设置兼容层为4.1,那么,旧有的行为会被欢迎并在浏览器控制台看到一个警告信息。通过这种方式,就可以很顺利的获得每一个升级警告,而不是破碎的API体验。

要设置使用Ext JS 4.2底层兼容,只需在应用程序的app.json文件中设置以下属性:

compatibility: {
 ext: '4.2'
}

由于兼容层是一个可选的开发功能,因而这对升级过程没有任何负面影响。实际上,整体上来说,使用兼容层还可以让升级过程更简单。具体信息可参阅《Ext JS 5升级指南》。


配置系统

Sencha Touch开发人员对于类定义的配置语法应该相当熟悉。Ext JS 5只是在这一范式上稍微做了些修改,具体信息请参阅在Ext JS 5有什么新东西指南》。


这些修改可能会影响到一些调用了initConfig方法的自定义组件,因此,一定要检查你的UX类。

你仍然需要使用“config:{}”来声明新的配置属性,不过派生类可以直接在类的主体内进行声明。这种做法可以让派生类保持他们与基类的兼容性,即使基