Knockout.js是一個JavaScript庫,它讓HTML控件很容易與數據進行綁定。Knockout.js使用的是“模型-視圖-視圖模型(MVVM)”模式。它對于分離前臺的業務邏輯和視圖簡化數據綁定過程有顯著的作用。
Knockout是一款很優秀的JavaScript庫,它可以幫助你僅使用一個清晰整潔的底層數據模型(data model)即可創建一個富文本且具有良好的顯示和編輯功能的用戶界面。任何時候你的局部UI內容需要自動更新(比如:依賴于用戶行為的改變或者外部的數據源發生變化),KO都可以很簡單的幫你實現,并且非常易于維護。
KO重要特性:
優雅的依賴跟蹤-任何時候當數據源模型發生變化時,它都能夠自動的更新你UI的指定內容。
聲明式綁定-它通過簡單淺顯的方式將你的UI與數據源模型進行綁定,你可以使用任意嵌套的結構模版來組建一個復雜的動態界面。
良好的可擴展性-通過簡單的幾行代碼就可以實現一個自定義行為作為新的聲明進行綁定。
其他優點:
純JavaScript庫-兼容任何服務器和客戶端技術。
可以很好的應用到已有的應用程序中-而不需要程序主要架構發生變化。
簡潔-采用Gzip壓縮之后只要13K。
兼容任何主流瀏覽器-(IE 6+, Firefox 2+, Chrome, Safari, 及其他)
一套全面完整的規范(采用行為驅動開發)-這意味著在新的瀏覽器或平臺中也能夠很容易驗證通過。
開發人員如果熟悉Ruby on Rails,Asp.net MVC 或其它MVC技術可能會發現它是一個帶有聲明式語法的MVC實時form。換句話說,你可以把KO當成通過編輯JSON數據來制作UI用戶界面的一種方式… 不管它為你做什么。
Knockout官網:http://knockoutjs.com/
深入淺出KnockoutJS:http://www.w2bc.com/Article/25175
Knockout應用開發指南(完整版) 目錄索引:http://www.cnblogs.com/TomXu/archive/2011/11/21/2257154.html
Knockout中文文檔:http://www.aizhengli.com/knockoutjs/knockoutjs.html