深入理解JavaScript MVC 框架
Model–View–Controller (MVC)是一種把信息展現邏輯和用戶交互分離的計算機用戶界麵開發模式;Model包含應用的數據和業務邏輯;Controller負責把用戶的輸入,轉換為命令傳遞給Model和View;這是維基百科的解釋;
這種模式最初是由Trygve Reenskaug在使用Smalltalk-80(1979)工作時設計的,剛開始叫做Model-View-Controller-Editor;後來通過《Design Patterns: Elements of Reusable Object-Oriented Software》這本書的深入介紹,才使得mvc徹底流行開來;
理解組成MVC三部分的職責,以及現有的這些javascript框架為我們提供了什麼,才能夠使我們更好的使用這些框架。下麵我們先通關過組成MVC的三個部分來學習下每部分的職責是什麼【以backbone為例給出示範代碼】。
Model
Model管理應用的數據。當model數據發生改變的時候,會通知它的監聽者【可能是view】,收到通知後,監聽者會做相應的變化。
View
View是當前狀態的model的視覺展現,view會觀察模型的變化,當模型改變的時候被通知,同時允許view來更新自己。一般情況下我們會在view中使用模版引擎渲染model;
Controllers
Controllers是位於models和views的之間的調解人,它的工作是當model改變時來更新view和當用戶操作view時來更新Model。
javascipt mvc框架對比
不同的人對比方法不一樣,關鍵看你關注什麼什麼地方;
如果你比較關注框架的UI Bindings【ui事件綁定】,Composed Views【組合視圖】,Web PresentationLayer【web展現】,Plays Nicely WithOthers【和其他框架混合使用】,這幾個方麵可以重點參考這篇文章;The Top 10 Javascript MVC Frameworks Reviewed;
如果你比較關注框架的URL路由,數據存儲,視圖實現等細節,可以重點關注這裏,javascript寶座:框架論劍;
如果你比較關注框架的具體實例,這裏有一個開源項目是專門對同一個demo采用不同的javascript mvc框架實現,可以非常明確定的看出每種框架在具體應用上的差別,具體 實現在這裏,TodoMVC官方站點
MVC給我們帶來的好處
易於維護
模型視圖的解耦,意味著可以對業務邏輯更好的進行單元測試
代碼能夠更好的重用
模塊化的開發能夠使分工更加明確,一部分人專注業務邏輯,一部分人專注用戶界麵。
回顧了經典的mvc模型,我們明白了應用中分層的概念以及每層的職責,同時也應該能夠鑒別所有的javascript mvc框架與我們所解釋的經典的mvc模型有什麼差別。這樣的話我們在選擇mvc框架時就應該應該重點關注models,views,controller具體怎麼實現的,甚至於具體代碼怎麼實現,才能夠幫助我們更好的選擇最適用與我們的javascript mvc框架。
最後更新:2017-04-02 16:48:10