理解JavaScript MVC 框架

??Model–View–Controller (MVC)是一種把信息展現(xiàn)邏輯和用戶交互分離的計算機(jī)用戶界面開發(fā)模式;Model包含應(yīng)用的數(shù)據(jù)和業(yè)務(wù)邏輯;Controller負(fù)責(zé)把用戶的輸入,轉(zhuǎn)換為命令傳遞給Model和View;這是維基百科的解釋;

這種模式最初是由Trygve Reenskaug在使用Smalltalk-80(1979)工作時設(shè)計的,剛開始叫做Model-View-Controller-Editor;后來通過《Design Patterns: Elements of Reusable Object-Oriented Software》這本書的深入介紹,才使得mvc徹底流行開來;

?理解組成MVC三部分的職責(zé),以及現(xiàn)有的這些javascript框架為我們提供了什么,才能夠使我們更好的使用這些框架。下面我們先通關(guān)過組成MVC的三個部分來學(xué)習(xí)下每部分的職責(zé)是什么【以backbone為例給出示范代碼】。

Model

????????Model管理應(yīng)用的數(shù)據(jù)。當(dāng)model數(shù)據(jù)發(fā)生改變的時候,會通知它的監(jiān)聽者【可能是view】,收到通知后,監(jiān)聽者會做相應(yīng)的變化。


View

????????View是當(dāng)前狀態(tài)的model的視覺展現(xiàn),view會觀察模型的變化,當(dāng)模型改變的時候被通知,同時允許view來更新自己。一般情況下我們會在view中使用模版引擎渲染model;


Controllers

????????Controllers是位于models和views的之間的調(diào)解人,它的工作是當(dāng)model改變時來更新view和當(dāng)用戶操作view時來更新Model。


MVC給我們帶來的好處

????????易于維護(hù)

????????模型視圖的解耦,意味著可以對業(yè)務(wù)邏輯更好的進(jìn)行單元測試

????????代碼能夠更好的重用

????????模塊化的開發(fā)能夠使分工更加明確,一部分人專注業(yè)務(wù)邏輯,一部分人專注用戶界面。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容