文件名称:Knockoutjs入门实用资源(经典)
文件大小:1.21MB
文件格式:ZIP
更新时间:2017-04-23 04:41:08
Knockoutjs MVVM 入门教程
如果說jQuery是林志玲,那麼knockout.js可比陳妍希,同樣讓人一見傾心!! 這就是我初見knockout.js的感想。 knockout.js是一套JavaScript UI程式庫,主要用來在網頁實現MVVM設計模式。MVVM已在微軟WPF/Silverlight/WP7中廣泛應用(延伸閱讀: InfoQ的簡要介紹、微軟的MVVM導論、天空的垃圾場則有幾篇WPF MVVM入門範例),用白話來說: 在MVVM裡,UI操作涉及的資料被包成ViewModel類別,接著在UI輸入/顯示元素分別標註其對應到ViewModel某個屬性值。當程式碼改變ViewModel屬性值,其對應的輸入/顯示欄位元素便會自動更新;而在UI欄位填入不同內容,ViewModel的資料屬性也會立刻被修改為新值。 這種雙向繫結(Two-Way Binding)的概念,若使用傳統做法得在ViewModel的屬性修改事件寫程式將新值反應到某個顯示/輸入元素上,還得攔截輸入元素的onChange事件,用程式將最新輸入結果反應到ViewMode屬性上,瑣碎的實做細節蠻多的。而不管是Silverlight/WPF或JavaScript,MVVM程式庫的目標即在節省前述自行開發的工夫,只需在顯示/輸入元素上註明其對應的ViewModel屬性,之後全部交給程式庫自動處理,讓程式開發者能優雅地實現MVVM。 如今,MVVM概念也被搬到網頁開發上,未來大家在ASP.NET MVC的展示中應就會常看到它。在JavaScript領域,過去也有些MVVM程式庫被提出來,例如: 微軟主導的jQuery Data Link Plugin(不過,它跟jQuery Template Plugin一樣,已停止發展,未來會由jsView及jsRender接替,但預估要到2012年中才會進入Beta階段),但顯然都比不上knockout.js所受到的關注與歡迎。 knockout.js的主要特色為: 宣告式語法: 透過DOM元素Attribute宣告完成資料繫結(Data Binding),簡潔方便 自動UI更新: 只要Model資料改變,UI立即反映 相依性追蹤: 源頭資料變動時,可自動追溯所有關連的資料一起改變 支援範本(Template): 開放自訂Template決定Model資料輸出結果,可滿足各式客製需求 免費、Open Source 純JavaScript - 可跟jQuery或其他JavaScript Framework併用無虞 輕薄短小,Minified版本只有40KB,HTTP壓縮後只有14KB 跨瀏覽器! 支援IE6+, FF2, Chrome, Opera, Safari(含行動裝置版本)