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. javascript - 关于数组的循环遍历问题2. javascript - 正则匹配字符串特定语句后的数字3. 在cmd下进入mysql数据库,可以输入中文,但是查看表信息,不显示中文,是怎么回事,怎新手,请老师4. python - Pycharm调试代码进行列表遍历时,如何直接赋值指定元素5. javascript - 请指条明路,angular的$event,在select中却是undefined?6. java 线程池序号一直增加问题7. docker gitlab 如何git clone?8. java - 重载是不是多态??9. mysql优化 - mysql 多表联合查询,求一个效率最高的查询10. 微信支付 - python做微信企业付款出现CA证书错误

网公网安备