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ù)據(jù)字段內(nèi)容。
而【視圖模型】則是 MVVM 興盛后的新概念。要實現(xiàn)一個完整的 Web App,除了數(shù)據(jù)外,還有 UI 交互中非常多的【狀態(tài)】。例如:彈框是否打開、用戶是否正在輸入、請求 Loading 狀態(tài)是否需要顯示、圖表數(shù)據(jù)分類是否需要顯示追加字段、和用戶輸入時文本的大小和樣式的動態(tài)改變……這些和具體數(shù)據(jù)字段無關(guān),但對前端實際業(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)極度膨脹所帶來的一系列問題了。對這些模型有更深的理解,實際上也有助于理解前端目前的發(fā)展方向。
回答2:舉個栗子你就懂
//業(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. 安全性測試 - nodejs中如何防m(xù)ySQL注入2. javascript - 關(guān)于apply()與call()的問題3. html - eclipse 標(biāo)簽錯誤4. python 利用subprocess庫調(diào)用mplayer時發(fā)生錯誤5. python - Pycharm的Debug用不了6. datetime - Python如何獲取當(dāng)前時間7. 請問PHPstudy中的數(shù)據(jù)庫如何創(chuàng)建索引8. python - pycharm 自動刪除行尾空格9. python文檔怎么查看?10. javascript - nginx反向代理靜態(tài)資源403錯誤?
