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