MVC全名是Model View Controller蒸其,是一種軟件設計模式
其中可分為模型(model)-視圖(view)-控制器(controller)三要素南用,
- 模型(model)皆辽,模型的主要作用為數(shù)據(jù)的接受和發(fā)送設定規(guī)則因苹。
- 視圖(view)移国,即用戶接觸的部分,用戶看到并與之交互荷逞。
-
控制器(controller)媒咳,控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求,所以當單擊Web頁面中的超鏈接和發(fā)送HTML表單時种远,控制器本身不輸出任何東西和做任何處理涩澡。它只是接收請求并決定調(diào)用哪個模型構件去處理請求,然后再確定用哪個視圖來顯示返回的數(shù)據(jù)坠敷。
當用戶與試圖發(fā)生交互時妙同,實際發(fā)生了下列過程
即:
- 控制器(controller)監(jiān)聽視圖(view).
- 用戶與視圖(view)交互射富,通知控制器(controller)調(diào)用模型(model)再請求服務器(server).
- 從而服務器(server)響應給模型(model),再返回數(shù)據(jù)給控制器(controller)再更新視圖(view).
- 控制器(controller)回到監(jiān)聽狀態(tài).
它的大致結構為:
- 把main.js之類的js文件根據(jù)功能劃分成若干模塊粥帚,
- 對于每個模塊胰耗,都用mvc模式,后面可用面向?qū)ο笸晟?/li>
- 先用立即執(zhí)行函數(shù)
!function(){內(nèi)容}.call()
,將內(nèi)容包裹起來芒涡,減少空間使用柴灯,若需要js之間的互相調(diào)用
可用window.xxx來命名內(nèi)部變量即可。 - 舉個例子:
!function(){
var view=document.querySelector('.leaveMessage')
var model={
init:function(){
...
});
},
get:function(){
...
},
set:function(){
...
})
}
}
var controller={
view:null,
model:null,
myForm:null,
init:function(view,model){
this.view=view
this.model=model
this.myForm =view.querySelector('#xxxxxx')
this.model.init()
this.loadMessage()
this.bindEvents()
},
bindEvents:function(){
...
},
loadMessage:function(){
...
},
saveMessage:function(){
...
}
}
controller.init(view, model)
}.call()