javascript - 前端開發(fā)中業(yè)務(wù)模型和視圖模型具體分別指什么?
問題描述
在徐飛的這篇文章中,第五節(jié):“為什么MVVM是一種很好的選擇”中,有提到業(yè)務(wù)模型和視圖模型,他們具體指什么?
問題解答
回答1:【業(yè)務(wù)模型】和【領(lǐng)域模型】較為相似,可以指用于表達(dá)業(yè)務(wù)內(nèi)容的數(shù)據(jù)。例如淘寶的業(yè)務(wù)模型是【商品】,博客的業(yè)務(wù)模型是【博文】,推特的業(yè)務(wù)模型是【推文】。可以理解為經(jīng)典 MVC 中的 Model,包含了名稱、描述、時(shí)間、作者、價(jià)格等【真正意義上的】數(shù)據(jù)字段內(nèi)容。
而【視圖模型】則是 MVVM 興盛后的新概念。要實(shí)現(xiàn)一個(gè)完整的 Web App,除了數(shù)據(jù)外,還有 UI 交互中非常多的【狀態(tài)】。例如:彈框是否打開、用戶是否正在輸入、請(qǐng)求 Loading 狀態(tài)是否需要顯示、圖表數(shù)據(jù)分類是否需要顯示追加字段、和用戶輸入時(shí)文本的大小和樣式的動(dòng)態(tài)改變……這些和具體數(shù)據(jù)字段無關(guān),但對(duì)前端實(shí)際業(yè)務(wù)場景非常重要的視圖狀態(tài),可以認(rèn)為是一種【視圖模型】。在 Vue 一類的 MVVM 庫中,上述例子中的狀態(tài)都能夠用 JS 變量來表示和控制,這同樣可以認(rèn)為是一種數(shù)據(jù)模型。
因此,業(yè)務(wù)模型和視圖模型在前端都是十分重要的概念。在 MVVM 解決了業(yè)務(wù)模型數(shù)據(jù)到頁面之間的綁定關(guān)系后,Redux 等狀態(tài)管理庫想要解決的則是富交互頁面中,視圖模型狀態(tài)極度膨脹所帶來的一系列問題了。對(duì)這些模型有更深的理解,實(shí)際上也有助于理解前端目前的發(fā)展方向。
回答2:舉個(gè)栗子你就懂
//業(yè)務(wù)模型function UserBM(){ this.username; this.password; this.address;}//視圖模型function UserVM(){ this.username; this.password; this.address; this.isShowHelloMessage; this.isShowAddress;}
相關(guān)文章:
1. docker綁定了nginx端口 外部訪問不到2. git - webstorm窗口中左側(cè)列表的文件名顏色怎么修改3. android權(quán)限被第三方安全軟件禁止,如何獲取該權(quán)限狀態(tài)4. javascript - 最近用echarts做統(tǒng)計(jì)圖時(shí)遇到兩個(gè)問題!!5. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?6. javascript - 深夜被問題困擾求解惑,rn的API之PermissionsAndroidd的問題7. mysql - 我的myeclipse一直連顯示數(shù)據(jù)庫連接失敗,不知道為什么8. tp 6.0 數(shù)據(jù)查詢,求教!9. Discuz! Q 有人用過嗎?10. javascript - onclick事件點(diǎn)擊不起作用

網(wǎng)公網(wǎng)安備