abstrait:MVVM:[1].隨著前端頁(yè)面開(kāi)發(fā)越來(lái)越復(fù)雜,用戶與數(shù)據(jù)的交互也越來(lái)越頻繁,而很多交互都是臨時(shí)性的,沒(méi)有必要每一次都要和服務(wù)器中的模型對(duì)象進(jìn)行交互,但是傳統(tǒng)的jQuery等函數(shù)庫(kù)又力不從心,這時(shí)MVVM模型就應(yīng)運(yùn)而生啦。[2].MVVM: 是Model-View-ViewModel的縮寫(xiě); M:Model層, V:View層, VM: ViewModel層;[3].Model:JavaScript
MVVM:
[1].隨著前端頁(yè)面開(kāi)發(fā)越來(lái)越復(fù)雜,用戶與數(shù)據(jù)的交互也越來(lái)越頻繁,而很多交互都是臨時(shí)性的,沒(méi)有必要每一次都要和服務(wù)器中的模型對(duì)象進(jìn)行交互,但是傳統(tǒng)的jQuery等函數(shù)庫(kù)又力不從心,這時(shí)MVVM模型就應(yīng)運(yùn)而生啦。
[2].MVVM: 是Model-View-ViewModel的縮寫(xiě); M:Model層, V:View層, VM: ViewModel層;
[3].Model:JavaScript對(duì)象/模型, View:HTML代碼/模板,各司其職,完全分離
[4].VM層:負(fù)責(zé)Model與View之間的交互,完全使用JavaScript進(jìn)行編寫(xiě);
[5].基本流程: VM層根據(jù)Model數(shù)據(jù)來(lái)更新View,或者根據(jù)View來(lái)更新Model,這個(gè)過(guò)程是雙向的,即雙向數(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ī)制的前端開(kāi)發(fā)框架,采用從底層向上的漸進(jìn)式開(kāi)發(fā)思想,易學(xué)易用!
MVVM架構(gòu)理解:由3層組成模型層、視圖層、視圖模型層,模型層負(fù)責(zé)對(duì)象字面量,視圖負(fù)責(zé)前端展示,視圖模型層負(fù)責(zé)視圖層和模型層的交互,是雙向數(shù)據(jù)綁定。服務(wù)器端只和模型層對(duì)接。MVVM架構(gòu)清晰的將數(shù)據(jù)交互分成不同的層級(jí)來(lái)處理,大大簡(jiǎn)化了工作量,可以分工處理
Professeur correcteur:天蓬老師Temps de correction:2019-01-02 13:46:33
Résumé du professeur:說(shuō)到底,就頁(yè)面究竟由哪個(gè)來(lái)渲染, 是由前端 ,還是后端,如果仍是服務(wù)器渲染,那就用mvc好了, 因?yàn)樗罘€(wěn)定,最合理, 如果由前端來(lái)渲染,就用mvvm, 因?yàn)樗麑?duì)服務(wù)器的壓力最小,基本上將控制器功能前移到了前端實(shí)現(xiàn)