代碼分成三塊
view負(fù)責(zé)看得見的東西 代碼在頁面的哪個(gè)位子
model只負(fù)責(zé)和數(shù)據(jù)相關(guān)的操作 (初始化巴碗、獲取和保存等)
controller負(fù)責(zé)其他的一些操作(dom操作等)
用戶點(diǎn)擊view
通知controller 調(diào)用model
model向服務(wù)器請(qǐng)求
服務(wù)器響應(yīng)請(qǐng)求 返回?cái)?shù)據(jù)
model將數(shù)據(jù)傳給controller
controller拿到數(shù)據(jù)更新view
MVC 模式代表 Model-View-Controller(模型-視圖-控制器) 模式权悟。這種模式用于應(yīng)用程序的分層開發(fā)疙描。
Model(模型) - 模型代表一個(gè)存取數(shù)據(jù)的對(duì)象,在數(shù)據(jù)變化時(shí)更新控制器。
View(視圖) - 視圖代表模型包含的數(shù)據(jù)的可視化。
Controller(控制器) - 控制器作用于模型和視圖上轧简。它控制數(shù)據(jù)流向模型對(duì)象,并在數(shù)據(jù)變化時(shí)更新視圖匾二。它使視圖與模型分離開哮独。
代碼的耦合性低 可重用性高 利于維護(hù)
MVC 是什么
MVC 是一種設(shè)計(jì)模式(或者軟件架構(gòu)),把系統(tǒng)分為三層:Model數(shù)據(jù)察藐、View視圖和Controller控制器皮璧。
Model 數(shù)據(jù)管理,包括數(shù)據(jù)邏輯分飞、數(shù)據(jù)請(qǐng)求悴务、數(shù)據(jù)存儲(chǔ)等功能。前端 Model 主要負(fù)責(zé) AJAX 請(qǐng)求或者 LocalStorage 存儲(chǔ)
View 負(fù)責(zé)用戶界面譬猫,前端 View 主要負(fù)責(zé) HTML 渲染讯檐。
Controller 負(fù)責(zé)處理 View 的事件,并更新 Model染服;也負(fù)責(zé)監(jiān)聽 Model 的變化别洪,并更新 View,Controller 控制其他的所有流程柳刮。
代碼說明
var model = {
data: null,
init(){}
fetch(){}
save(){}
update(){}
delete(){}
}
view = {
init() {}
template: '<h1>hi</h1'>
}
controller = {
view: null,
model: null,
init(view, model){
this.view = view
this.model = model
this.bindEvents()
}
render(){
this.view.querySelector('name').innerText = this.model.data.name
},
bindEvents(){}
}