ExtJS4.2中对MVC的重大改变?

时间:2012-12-22 08:42:25

标签: extjs extjs4 extjs-mvc extjs4.2

我最近听说4.2关于MVC应用程序的工作方式会有一些重大变化。我下载了测试版,但API似乎完全相同。任何人都可以向我解释即将到来的变化以及这些有什么关系?如果我更新,我是否需要担心所有控制器都会停止工作?

2 个答案:

答案 0 :(得分:8)

是的,我会将我们对MVC所做的更改称为4.2非常重要;然而,向后兼容始终是我们的首要任务。我确实承认,在4.2之前,MVC实现存在许多长期未解决的问题,这促使人们跳过所有类型的箍来做他们需要的事情。我们一直在尝试解决这些问题并简化MVC体验,同时添加针对拥有大型应用程序的开发人员的几项功能。 4.2 beta 2将包含大部分内容,我们很乐意听取您对它们的反馈。

我计划在4.2发布之前写下这些改进,但这里有一个快速列表:

  • Ext.app.EventBus,就像提到的@sra一样,现在是单身人士,并且在您的应用程序中始终可用 - 尽管直接使用它没有多大意义
  • Ext.app.Controller不再依赖于Ext.app.Application来做事情,并且可以在不启动整个依赖关系树的情况下进行实例化 - 这意味着您可以对控制器进行单元测试!
  • 现在可以创建自己的Ext.app.Application扩展的Application类,并在此类中包含您的逻辑
  • Ext.application()不再有无法形容的黑魔法;在传递Application类名时,它只是实例化它。如果你像以前一样传递一个配置对象,它将使用这些配置选项声明新的Application类,并实例化它 - 与上面相同的逻辑,执行有点不同
  • 由于上述两项,Ext.application()不再需要所有依赖树同步(以前),所以要注意一件事
  • 现在可以在Application类中显式声明所有名称空间(项目部分),以避免在解析依赖项时出现任何歧义
  • Ext.app.Application现在使用自己的祖先正式处理 ,可以在您的应用中用作顶级控制器
  • 引入了事件域的新概念;现在可以触发和收听与组件无关的事件。我们提供了几个开箱即用的域名,并且很容易添加您自己的域名 - 就像我前一段时间在my article中描述的那样,但更清洁,更强大

对于向后兼容性有一些更少的改进和黑客,主要涉及依赖性跟踪。如果你不做一些过于疯狂的事情,这些不应该绊倒你。如果你这样做,这就是Betas的用途。 :)

希望这有帮助!

答案 1 :(得分:6)

,除非你做的事情非常奇怪,否则你不必担心。

主要的变化是控制器不再需要Ext.app.Application个实例。这是因为Ext.app.EventBus的更改现在是单例,因此所有控制器都可以使用相同的实例。

这就是我现在所知道的。如果我获得新信息,我可以更新我的帖子