編程中的 Model 到底是什麼?
MVC 中 Model - View - Controller 中 Model 到底是啥?
常見翻譯 Model 為 模型,數據,實體類,百度也這麼講的:model_百度百科
在各大 MVC 框架中,Java 的 Spring MVC 最有代表性,下文以Java為例。
實際編程時,常有用戶的個人資料:
基本資料一般包含"名字"、"年齡"、"城市"等,英文欄位:id, gender, age, city 這些決定了 Model 的樣子
在資料庫則為 user 表,也就是 Model 在資料庫中的樣子
在 java 表現為 User 實體類:
數據在 controller 應該是 User 類的實例對象,而如果前後分離的話,這個實例對象會轉成 json 格式。
數據在 View 中通常是 html 結構了:
數據從資料庫,到 Model(User類),再到 Controller(new User),再到 View ( html / css ),最後在瀏覽器中看到,如圖示
Model 在 MVC 框架的角色是:有很多欄位組成的數據。這些數據可以是:類,對象,字典,集合,這些數據準備在 Controller 里被操作(即增刪改查),最後在 View 呈現出來。
與 MVC 相對的,還有 MVVM,其中的 VM 是 ViewModel 的縮寫,淡化了 Controller.
有些數據不用表現在 View, 如 id,一般用於與後端的 ajax 操作
而有的數據則綁定在 View, 如 表單的欄位,還有 clicked selected 這樣的 View 狀態,與後端沒有關係的欄位。這些通常就是 ViewModel 的應用場景。
MVVM 在 js 框架里,Model 通常來源於與後端通訊的 ajax 格式的數據,好比 java 的實體類是來源於資料庫般,而 ViewModel 則是綁定到View中的數據,像原生 js 的dataset, jQuery 的data(),angular1的 $scope, angular2 的 @Input 等,react 中的 state, vue 中的 data,都是ViewModel 實現方式。
╔————————————╗ │ ** 感 * 謝 * 閱 * 讀 ** │ ╚————————————╝
推薦閱讀:
※React與Vue有什麼不同?
※Vue學習「心酸」歷程(連載第一篇)
※在什麼場景下,選擇 AngularJS 比其他前端框架更好?
※不僅僅是複製粘貼 - 聊聊前端腳手架
※今天來讀點snabbdom吧~?
TAG:前端框架 |