今天搞的有點快,因為上午簡單研究了下MVC,發現MVC不太适合前端開發,然後之前看幾位前端前輩都推薦前端使用MVVM,但是我對其還不甚了解,是以我覺得下午還是應該先看看他是神馬先,後面再決定要不要繼續深入下去。

借用我們百科一張美圖,所謂MVVM就是model-view-viewmodel模型。
他是微軟帶來的一項新的技術體驗,最先用于WPF,最後發現其模式對前端開發尤其比較合适,是以便在前端流行起來了。
MVVM是對MVC的一個改進,用以适應當代Web開發。
model為資料或者業務邏輯,完全與UI無關,它存儲了狀态并對問題領域做出處理,model可以寫在代碼裡面或者用json表示、或者資料表中,反正他就是資料啦。
view表示可見元素,按鈕、标簽、圖檔等,我們可能會對各個标簽綁定事件,但是我們知道這其實是原來controller該做的事情。
簡單例子中view被直接綁定到model,model的一些部分隻是簡單單向綁定顯示在view中。
PS:以上至于你們懂不懂,反正我是不懂了。。。用幾個字形容就是模模糊糊
因為光是讀概念無法了解到實質,是以我們來看看其使用吧!
之前我們在寫datalist的時候就有朋友提到這個東西,我當時也沒有怎麼關注,現在一起來看看吧:
knockout是一個輕量級UI庫,通過應用MVVM(主角)模式使javascript前端UI簡單化:
根據以上描述,我們來跟進一番:
Knockout是一個以資料模型(data model)為基礎的能夠幫助你建立富文本,影響顯示和編輯使用者界面的javascript類庫。
任何時候若是UI需要更新,knockout能夠簡單的幫助你實作并且容易維護。
但是究竟這個家夥是個神馬呢?我也不知道,是以來試試吧。
PS:葉大俠之前寫了一個dropdownlist與datalist的功能,好像與他有點類似呢:)
我們再拓寬:
這個例子很精彩,我們選擇後,選擇結果會馬上展現出來,初始化當然也是對的:
比較神奇的是,我們可以在标簽裡面使用函數了,和最初的.net越來越靠近了:
PS:在此小葉子已經認識到了knockout的強大了,小葉子寫的那個算是玩具吧。
PS2:我感覺如此使用後,對jquery的依賴降低了哦
驚歎
使用了KO後,似乎我資料模型發生改變了,可能會發生級聯反應哦,曾經可能需要手動操作的事情,現在ko幫我們做了!!!
經過今天的學習,雖然沒能完全了解MVVM是什麼,但是也有所增長,更是發現了ko這個神器,真是不錯。
但是,因為我們最近的學習重點,是我們的小視窗,是以這裡ko暫時放下,在我們小視窗靠一段落後,我們一起來學習ko先!
您可以考慮給小钗發個小額微信紅包以資鼓勵
本文轉自葉小钗部落格園部落格,原文連結:http://www.cnblogs.com/yexiaochai/p/3148382.html,如需轉載請自行聯系原作者