2012-12-22 48 views
7

我最近聽說有一些關於MVC應用程序工作方式的4.2版主要變化。我下載了測試版,但API看起來完全一樣。任何人都可以向我解釋即將發生的變化以及它的全部內容嗎?如果我更新,我是否需要擔心所有控制器都會停止工作?ExtJS4.2中對MVC的重大更改?

回答

6

沒有,除非你做了奇怪的事情,否則你不必擔心。

那麼主要的變化是,控制器不再需要一個Ext.app.Application實例。這是由於Ext.app.EventBus的改變,現在它是單身人士,因此可以讓所有的控制器使用同一個實例。

這就是我現在所知道的。我可以更新我的職務,如果我得到新的信息

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.application()不再做不可告人的黑魔法,以創建Ext.app.Application擴展自己的應用程序類(ES),以及包括你的邏輯;當傳遞你的應用程序類名稱時,它只是實例化它。如果您通過它像以前一樣配置對象,其將宣佈新的應用程序類,這些配置選項,並創建實例 - 相同的邏輯之上,有點不同的執行
  • 由於上述兩個項目的結果,Ext.application()不再需要所有您的依賴關係樹同步(它用來),所以這是一件值得注意的事情
  • 現在可以顯式聲明Application類中的所有名稱空間(項目部分),以避免在解決依賴關係時出現任何歧義
  • Ext.app.Application現在造成正確有自己的祖先,並且可以作爲一個頂級的控制器應用
  • 事件域的新概念被引入;現在可以觸發和收聽與組件無關的事件。我們提供幾個域開箱即用,並可以很容易地添加自己的 - 就像我在my article前段時間描述的東西,但更清潔和更強大的

有向後兼容一些小的改進和黑客,主要關注依賴關係跟蹤。如果你不做太過瘋狂的事情,這些不應該讓你絆倒。如果你這樣做,那就是貝塔斯的目的。 :)

希望這有助於!