abstrait: (1).MVC: [1]. 背景:Web項(xiàng)目需求日益復(fù)雜,為了使項(xiàng)目簡化,采用了MVC架構(gòu),實(shí)現(xiàn)了前端UI展示, &nbs
(1).MVC:
[1]. 背景:Web項(xiàng)目需求日益復(fù)雜,為了使項(xiàng)目簡化,采用了MVC架構(gòu),實(shí)現(xiàn)了前端UI展示,
與后端業(yè)務(wù)邏輯處理的完全分離,利于前后端開發(fā)人員分工協(xié)作,提升效率
[2]. MVC:是Model-View-Controller的縮寫;
[3]. M:Model,模型,主要處理與數(shù)據(jù)庫相關(guān)的業(yè)務(wù)邏輯;
V:View,視圖,主要負(fù)責(zé)數(shù)據(jù)在客戶端/瀏覽器上的展示;
C:Controller:控制器,視圖與模型之間傳遞消息,例如接受請(qǐng)求,選擇模型,渲染視圖等;
[4]. MVC基本的運(yùn)行流程是:
1. 視圖發(fā)起請(qǐng)求-->控制器接收請(qǐng)求-->轉(zhuǎn)發(fā)給對(duì)應(yīng)模型處理-->模型將結(jié)果返回到控制器-->控制器返回到視圖;
2. 簡單描述: View-->Controller-->Model-->Controller-->View, 即 V-C-M-C-V;
3. 整個(gè)過程是封閉的,單向的,視圖與模型之間不允許直接直接通訊,必須通過控制器進(jìn)行;
[5]. MVC開發(fā)的基本原則:
1. 需要服務(wù)器端配合,模型Model與控制器Controller都在服務(wù)器端完成;
2. 服務(wù)器處理過的數(shù)據(jù),必須通過JavaScript在前端進(jìn)行渲染;
2. '厚模型,薄控制器',業(yè)務(wù)邏輯盡可能寫到模型中,控制器僅調(diào)用模型提供的接口即可;
(2).MVVM:
[1].隨著前端頁面開發(fā)越來越復(fù)雜,用戶與數(shù)據(jù)的交互也越來越頻繁,而很多交互都是臨時(shí)性的,沒有必要每一次都要
和服務(wù)器中的模型對(duì)象進(jìn)行交互,但是傳統(tǒng)的jQuery等函數(shù)庫又力不從心,這時(shí)MVVM模型就應(yīng)運(yùn)而生啦。
[2].MVVM: 是Model-View-ViewModel的縮寫;
M:Model層, V:View層, VM: ViewModel層;
[3].Model:JavaScript對(duì)象/模型, View:HTML代碼/模板,各司其職,完全分離
[4].VM層:負(fù)責(zé)Model與View之間的交互,完全使用JavaScript進(jìn)行編寫;
[5].基本流程: VM層根據(jù)Model數(shù)據(jù)來更新View,或者根據(jù)View來更新Model,這個(gè)過程是雙向的,即雙向數(shù)據(jù)綁定;
[6].服務(wù)器端只負(fù)責(zé)更新Model即可,而Model就是一個(gè)JavaScript對(duì)象,所以服務(wù)器只需要返回可被Model解析的
數(shù)據(jù)即可,例如:json,html等,這樣就完全實(shí)現(xiàn)了面向接口/API編程。
[7].Vue.js就是一個(gè)完全采用了MVVM機(jī)制的前端開發(fā)框架,采用從底層向上的漸進(jìn)式開發(fā)思想,易學(xué)易用!
Professeur correcteur:韋小寶Temps de correction:2019-02-11 09:17:53
Résumé du professeur:總結(jié)的很不錯(cuò) mvc的架構(gòu)大部分都會(huì)用于后端框架中 而mvvm基本上都是前端的開發(fā)框架使用的架構(gòu)