什么是前端model?前端领域提及的model具体指代哪几类内容?
前端「Model」概念说明
日常交流中提到的前端领域「Model」确实同时涵盖你提到的两种,具体指代哪一类可以结合上下文语境判断,两类的具体差异和使用场景如下:
两类Model的定义
- 第一类:后端返回的原始数据模型
也常被叫做接口DTO(数据传输对象),结构、字段、数据类型完全和后端接口约定对齐,没有前端自定义的额外字段。一般用来做接口请求/响应的类型约束,比如TypeScript中声明的接口响应类型就属于这类Model。 - 第二类:前端视图/业务模型
就是你提到的由Controller传递给View的增强版数据结构,是前端基于原始接口模型,结合页面渲染需求二次处理后的产物:常见的处理逻辑包括把后端返回的时间戳格式化为可直接展示的日期字符串、把后端返回的枚举值映射为前端展示文案、拼接多个关联接口的字段生成渲染需要的复合字段等。这类Model的结构完全服务于当前页面/组件的渲染逻辑,不需要和后端接口结构对齐。
语境区分方式
你可以通过交流的上下文快速判断大家指代的是哪类Model:
- 聊接口联调、接口字段约定的时候提到的Model,默认指代第一类原始接口模型
- 聊MVC/MVVM架构、页面数据流、视图渲染逻辑的时候提到的Model,默认指代第二类视图模型
补充说明:在多数MVVM框架的语境里,第二类和视图直接绑定的增强Model也会被单独叫做ViewModel(即MVVM中的VM层),属于广义Model范畴下的细分概念。
内容的提问来源于stack exchange,提问作者user2132190
相关产品推荐
相关产品推荐

