7

我最近听说 4.2 版对 MVC 应用程序的工作方式进行了一些重大更改。我下载了测试版,但 API 看起来都一样。谁能解释一下即将发生的变化以及这一切?如果我更新,我是否需要担心我所有的控制器都会停止工作?

4

2 回答 2

8

是的,我认为我们在 4.2 中对 MVC 所做的更改非常重要。然而,向后兼容一直是我们的首要任务。我确实承认,在 4.2 之前,MVC 实现存在许多长期未解决的问题,这促使人们跳过各种障碍来做他们需要的事情。我们一直在尝试解决这些问题并简化 MVC 体验,同时添加一些针对手头有大型应用程序的开发人员的功能。4.2 beta 2 将包括其中的大部分,我们很想听听您对它们的反馈。

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

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

对于向后兼容性,还有一些小的改进和技巧,主要与依赖跟踪有关。如果你不做一些过于疯狂的事情,这些不应该让你绊倒。如果你这样做了,那就是 Beta 的用途。:)

希望这可以帮助!

于 2013-01-08T22:46:26.793 回答
6

,除非你在做完全奇怪的事情,否则你不必害怕。

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

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

于 2012-12-22T08:51:55.657 回答