1.首先去http://knockoutjs.com/index.html下載knockout.js,最新的版本是2.3javascript
2.知道什麼是Knockout?它是個JavaScript library,幫助建立豐富的顯示和編輯器UI,經過乾淨的底層數據模型。你能夠在任什麼時候候動態更新UI的選擇部分。html
3.知道knockoutjs的實現原理[MVVM模式]java
MVVM已在微軟WPF/Silverlight/WP7中普遍應用,和MVC模式同樣,主要目的是分離視圖(View)和模型(Model),有幾大優勢web
簡單的說,在MVVM裏,UI操做涉及的數據被包裝成ViewModel,接着在UI輸入/顯示元素分別標註其對應到ViewModel某個屬性值。當程式碼改變ViewModel屬性值,其對應的輸入/顯示欄位元素便會自動更新;而在UI欄位填入不一樣內容,ViewModel的資料屬性也會馬上被修改成新值。這種雙向綁定(Two-Way Binding)的概念,若使用傳統作法得在ViewModel的屬性修改事件將新值反映到某個顯示/輸入元素上,還得攔截輸入元素的onChange事件,用程式將最新輸入結果反應到ViewMode屬性上,瑣碎的實作細節蠻多的。而不論是Silverlight/WPF或JavaScript,MVVM程式庫的目標即在節省前述自行開發的工夫,只需在顯示/輸入元素上註明其對應的ViewModel屬性,以後所有交給knockout.js庫自動處理,讓程式開發者能優雅地實現MVVM。瀏覽器
聲明式語法:透過DOM元素屬性宣告完成數據綁定,簡潔方便
自動UI更新:只要產品型號資料改變,UI當即反映
依賴性追蹤:源頭數據變更時,可自動追溯全部關連的數據一塊兒改變
支持模板:開放自訂模板決定數據輸出結果,可知足自定義需求
免費,開源純JavaScript的 - 可跟jQuery的或其餘JavaScript框架兼容,縮小的版本只有40KB,HTTP壓縮後只有14KB跨瀏覽器!支持IE6+, FF2, Chrome, Opera, Safariapp
官方網站提供了友好的互動式的在線入門教程,能夠去http://learn.knockoutjs.com/練習以及查看詳細的API文檔。框架
有時候若是你沒有使用代理去訪問官網或者相關網站的時候,可能打不開等等,那麼最容易得到knockout.js的方式就是使用管理NuGet程序包工具進行自動安裝編輯器
引入konckout.js包後,咱們接着寫幾行代碼就能夠嘗試下MVVM的優秀特性ide
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>konckout學習系列</title> <script src="Scripts/knockout-2.3.0.debug.js"></script> </head> <body> 輸入值:<input type="text" id="txtValue" data-bind="value: myValue" /><br/> 響應文本:<span id="spnValue" data-bind="text: myValue"></span> <script type="text/javascript"> var myViewModel = { myValue: ko.observable("Halower") } ko.applyBindings(myViewModel); </script> </body> </html>
能夠看到,咱們幾乎都沒寫什麼,完成了自動的感應和數據的綁定。工具
1.只定義了一個 myViewModel組件對象(包含一個myValue的屬性)。
2.經過data-bind="value: myValue"將myValue屬性綁到<input>的value值。
3.經過data-bind="text: myValue"將屬性值動態的反映到<span>中。
因爲本例未引用jQuery,無$.ready()可用,因此把<script>放在網頁的最後以確保在網頁元素都載入後才執行ko.applyBindings( )。
試着改變<input>的值,可發現<span>會立刻反應修改後的結果,能夠看出已經自動的檢測了onchange時間了,果真很強悍!
微軟在往後的VS版本中,只要是好的,免費的,開源的,都會集成進來替他賣力,並且從MVC4中開始提出了SPA的概念,也就是說knockout.js不就就會成爲微軟的得力幫手。
PS:ASP.NET Single Page Application (SPA) helps you build applications that include significant client-side interactions using HTML 5, CSS 3 and JavaScript. It’s now easier than ever before to getting started writing highly interactive web applications.
備註:
本文版權歸你們共用,不歸本人全部,全部知識都來自於官網支持,書本,國內外論壇,大牛分享等等......後續將學習knockout.js的經常使用功能。