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

seb*_*eba 7 extjs extjs4 extjs-mvc extjs4.2

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

Ale*_*rev 8

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

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

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

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

希望这可以帮助!


sra*_*sra 6

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

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

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