javascript - 前端開發中業務模型和視圖模型具體分別指什么?
問題描述
在徐飛的這篇文章中,第五節:“為什么MVVM是一種很好的選擇”中,有提到業務模型和視圖模型,他們具體指什么?
問題解答
回答1:【業務模型】和【領域模型】較為相似,可以指用于表達業務內容的數據。例如淘寶的業務模型是【商品】,博客的業務模型是【博文】,推特的業務模型是【推文】??梢岳斫鉃榻浀?MVC 中的 Model,包含了名稱、描述、時間、作者、價格等【真正意義上的】數據字段內容。
而【視圖模型】則是 MVVM 興盛后的新概念。要實現一個完整的 Web App,除了數據外,還有 UI 交互中非常多的【狀態】。例如:彈框是否打開、用戶是否正在輸入、請求 Loading 狀態是否需要顯示、圖表數據分類是否需要顯示追加字段、和用戶輸入時文本的大小和樣式的動態改變……這些和具體數據字段無關,但對前端實際業務場景非常重要的視圖狀態,可以認為是一種【視圖模型】。在 Vue 一類的 MVVM 庫中,上述例子中的狀態都能夠用 JS 變量來表示和控制,這同樣可以認為是一種數據模型。
因此,業務模型和視圖模型在前端都是十分重要的概念。在 MVVM 解決了業務模型數據到頁面之間的綁定關系后,Redux 等狀態管理庫想要解決的則是富交互頁面中,視圖模型狀態極度膨脹所帶來的一系列問題了。對這些模型有更深的理解,實際上也有助于理解前端目前的發展方向。
回答2:舉個栗子你就懂
//業務模型function UserBM(){ this.username; this.password; this.address;}//視圖模型function UserVM(){ this.username; this.password; this.address; this.isShowHelloMessage; this.isShowAddress;}
相關文章:
1. 關docker hub上有些鏡像的tag被標記““This image has vulnerabilities””2. boot2docker無法啟動3. docker-compose中volumes的問題4. java - SSH框架中寫分頁時service層中不能注入分頁類5. docker安裝后出現Cannot connect to the Docker daemon.6. javascript - mock.js可以存儲數據嗎7. nignx - docker內nginx 80端口被占用8. docker api 開發的端口怎么獲???9. dockerfile - 為什么docker容器啟動不了?10. node.js - antdesign怎么集合react-redux對input控件進行初始化賦值

網公網安備