2012-04-03 102 views
14

昨天我開始使用JavaScript開發我的第一個Metro風格應用程序。 我在Visual Studio 2011中使用了其中的一個模板。該項目模板附帶了一堆嚴重依賴於WinJS的生成代碼。整個結構讓人想起ASP.NET的視圖和相應的代碼隱藏文件。還有一個navigator.js文件負責視圖之間的導航。整個數據駐留在data.js中,可以使用不同的函數進行檢索。Metro Style應用程序:WinJS必須?

我與backbone.js一起工作,我發現它的概念,如MVC結構和路由很酷。我的問題基本上是如果你可以使用backbone.js來實現這樣一個Metro風格的應用程序? 我可以消除WinJS,並從頭開始?我應該嘗試將backbone.js集成到當前結構中嗎?那麼它會是什麼樣子?使用第三方JavaScript框架有什麼限制嗎?我應該離開生成的結構嗎?

用JavaScript開發Metro風格應用的最佳實踐和模式是什麼?

謝謝

回答

9

您可以在Metro風格的JavaScript應用程序中使用您喜歡的任何JavaScript框架。看到j​​Query的此相關的問題:

jQuery and Windows 8 JavaScript Metro Style Apps

的WinJS框架進行了幾個功能,首先是一組非UI API進行管理和操作數據,使得服務請求等......這些都是很容易被其他JavaScript框架取代。第二個是UI層,在這裏你可能會困難一些。 WinJS用戶界面的設計遵循Metro設計語言。如果你用自己的UI層替換它(例如使用jQuery UI),你的應用程序看起來就不太合適。

就我個人而言,我會使用WinJS作爲用戶界面層,並與運行時(狀態持久性,應用切換等)集成在一起,但是對於我的大部分代碼使用更加標準的JavaScript庫,例如Backbone或Knockout以確保可移植性。

+0

感謝ColinE的好主意!我仍然在努力想象這樣的架構。我會用主幹風格路由替換navigator.js中的邏輯嗎?是否需要Backbone.View或者我會使用它的模板和綁定來堅持WinJS UI?或者我應該將WinJS UI代碼隱藏在Backbone.View中?當視圖呈現時,仍有一些事件控制應用程序的生命週期,例如「就緒」事件。我會在哪裏處理這些?很高興認識到可以使用其他框架,但是它們的集成導致頭痛。 – Helikaon 2012-04-03 07:54:26

+3

WinJS由三部分組成:樣式表,base.js和ui.js.如果你依賴於樣式表,那麼你就不會有任何問題使它看起來很正確。 – 2012-07-12 04:57:59

+1

我真的很想知道,如果使用WinJS進行綁定等操作會帶來巨大的性能提升,有沒有人有任何關於此的信息? – 2012-09-02 12:30:14

0

我使用Knockout js和Require js for MVVM。對於視覺效果,我使用jQuery。

我的數據,主貌似有點這樣的:

(function() { 
    "use strict"; 

    var app = WinJS.Application; 

    app.onactivated = function (eventObject) { 
     require(["/scripts/knockout"], function(ko){ 
      // My knockout viewModel and data binding goes here 
     }); 
    }; 

    app.start(); 
})(); 

如果您喜歡在代替骨幹,我猜的設置是相似的。

相關問題