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 实现方式。
╔————————————╗
│ ** 感 * 谢 * 阅 * 读 ** │
╚————————————╝