前端开发中业务模型和视图模型具体分别指什么?

在徐飞的这篇文章中,第五节:“为什么MVVM是一种很好的选择”中,有提到业务模型和视图模型,他们具体指什么?

阅读 4.1k
2 个回答

【业务模型】和【领域模型】较为相似,可以指用于表达业务内容的数据。例如淘宝的业务模型是【商品】,博客的业务模型是【博文】,推特的业务模型是【推文】。可以理解为经典 MVC 中的 Model,包含了名称、描述、时间、作者、价格等【真正意义上的】数据字段内容。

而【视图模型】则是 MVVM 兴盛后的新概念。要实现一个完整的 Web App,除了数据外,还有 UI 交互中非常多的【状态】。例如:弹框是否打开、用户是否正在输入、请求 Loading 状态是否需要显示、图表数据分类是否需要显示追加字段、和用户输入时文本的大小和样式的动态改变……这些和具体数据字段无关,但对前端实际业务场景非常重要的视图状态,可以认为是一种【视图模型】。在 Vue 一类的 MVVM 库中,上述例子中的状态都能够用 JS 变量来表示和控制,这同样可以认为是一种数据模型。

因此,业务模型和视图模型在前端都是十分重要的概念。在 MVVM 解决了业务模型数据到页面之间的绑定关系后,Redux 等状态管理库想要解决的则是富交互页面中,视图模型状态极度膨胀所带来的一系列问题了。对这些模型有更深的理解,实际上也有助于理解前端目前的发展方向。

举个栗子你就懂

//业务模型
function UserBM(){
    this.username;
    this.password;
    this.address;
}

//视图模型


function UserVM(){
    this.username;
    this.password;
    this.address;
    this.isShowHelloMessage;
    this.isShowAddress;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题