MVC簡介
基本介紹
MVC即模型(Model),視圖(View)和控制(Controller),旨在實現Web系統的職能分工,具體來說就是使業務邏輯和數據顯示分離。
在MVC中,視圖(View)為用戶提供交互,模型(Model)負責處理數據和業務邏輯,控制器(Controller)則是View與Model之間溝通的橋梁。
MVC一個很重要的標志就是,視圖(View)與模型(Model)沒有直接的交互,而是通過控制器(Controller)來溝通。具體地:用戶通過View進行輸入,Controller負責把輸入傳遞給Model,Model處理,存取數據,然后Controller將處理的結果返回View進行展示。
優缺點
MVC架構的優勢是顯著的,但也存在一些缺點。
一方面,MVC能極大地降低數據與視圖之間的耦合性,具有較高的可維護性和復用性,還能提高分工效率和降低生命周期的成本,從而有利于軟件工程化管理。
然而,MVC架構卻不是那么容易理解,且會增加系統的復雜性,還會降低視圖層訪問數據層的效率,不適用于小型工程的開發。
Backbone
BackBone是一個重要的前端MVC框架,用于支持Javactript應用的重量級開發。下面將對Backbone.Events(和控制器有著密切聯系)以及Backbone.Model(和模型有著密切聯系)的應用進行介紹,并結合實例分析Backbone框架是如何支持前端MVC的架構的。所有的學習資料來自于BackBone官網:http://backbonejs.org/
Backbone.Events
在Backbones中,事件可以作為一個任何一個對象的模型,對象能夠綁定和觸發一個事件被命名的事件。
對于一個被聲明了的對象object(下文的討論,所有的對象都以object為例),首先為object添加extend。
._extend(object,Backbone.Events);
然后為對象添加一個事件:格式為:
object.on(event,callback,[context]);
第一個參數為事件名,第二參數為事件調用時的回調函數。
以下面的事件為例:”alert”為事件名,function(msg)為回調函數,msg為觸發事件時所傳入的參數,與觸發器中的參數一致。
object.on(“alert”,function(msg){alert(msg);});觸發object.on進行回調的是object.trigger(“alert”, ”It's an event”)。
同object.on,object.trigger第一個參數為事件名,而第二個參數傳入的是object.on中回調函數所需要的參數。事件通過事件名被綁定在一個對象上。可以看到這個事件在綁定前是不需要聲明的,事件能夠被觸發的內在聯系是共同的對象和事件名。特別地,如果事件名為”all”,那么調用任何object.trigger時,都會觸發object.on中的回調函數。
新聞熱點
疑難解答
圖片精選