MVVM模式中ViewModel和View、Model有什么区别?

 更新时间:2015年06月19日 09:52:19   投稿:junjie  
这篇文章主要介绍了MVVM模式中ViewModel和View、Model有什么区别?本文分别解释了它们的功能和作用,然后总结了它之间的区别,需要的朋友可以参考下

Model:很简单,就是业务逻辑相关的数据对象,通常从数据库映射而来,我们可以说是与数据库对应的model。

View:也很简单,就是展现出来的用户界面。

基本上,绝大多数软件所做的工作无非就是从数据存储中读出数据,展现到用户界面上,然后从用户界面接收输入,写入到数据存储里面去。所以,对于数据存储(model)和界面(view)这两层,大家基本没什么异议。但是,如何把model展现到view上,以及如何把数据从view写入到model里,不同的人有不同的意见。

MVC派的看法是,界面上的每个变化都是一个事件,我只需要针对每个事件写一堆代码,来把用户的输入转换成model里的对象就行了,这堆代码可以叫controller。

而MVVM派的看法是,我给view里面的各种控件也定义一个对应的数据对象,这样,只要修改这个数据对象,view里面显示的内容就自动跟着刷新,而在view 里做了任何操作,这个数据对象也跟着自动更新,这样多美。所以:

ViewModel:就是与界面(view)对应的Model。因为,数据库结构往往是不能直接跟界面控件一一对应上的,所以,需要再定义一个数据对象专门对应view上的控件。而ViewModel的职责就是把model对象封装成可以显示和接受输入的界面数据对象。

至于viewmodel的数据随着view自动刷新,并且同步到model里去,这部分代码可以写成公用的框架,不用程序员自己操心了。

简单的说,ViewModel就是View与Model的连接器,View与Model通过ViewModel实现双向绑定。

相关文章

  • js charAt的使用示例

    js charAt的使用示例

    这篇文章主要介绍了js charAt的使用方法,需要的朋友可以参考下
    2014-02-02
  • bootstrap快速制作后台界面

    bootstrap快速制作后台界面

    这篇文章主要为大家详细介绍了如何利用bootstrap快速制作后台界面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 用js设置下拉框为只读的小技巧

    用js设置下拉框为只读的小技巧

    select没有只读属性,所以需要在select外面包含一个span,通过js来改变,需要的朋友可以参考下
    2014-04-04
  • JavaScript实现表单验证案例

    JavaScript实现表单验证案例

    这篇文章主要为大家详细介绍了JavaScript实现表单验证案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • 关于ECharts图表显示颜色修改方式

    关于ECharts图表显示颜色修改方式

    这篇文章主要介绍了关于ECharts图表显示颜色修改方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • js使用DOM操作实现简单留言板的方法

    js使用DOM操作实现简单留言板的方法

    这篇文章主要介绍了js使用DOM操作实现简单留言板的方法,涉及javascript中DOM操作的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • js获得相对路径文件并上传到服务器的方法

    js获得相对路径文件并上传到服务器的方法

    由于浏览器的安全限制,Javascript无法直接获取用户上传文件的绝对路径。但是我们可以通过一些技巧来获取文件的相对路径,这篇文章主要给大家介绍了关于js获得相对路径文件并上传到服务器的相关资料,需要的朋友可以参考下
    2023-11-11
  • JS实现自定义弹窗功能

    JS实现自定义弹窗功能

    浏览器自带的原生弹窗很不美观,而且功能比较单一,绝大部分时候我们都会按照设计图自定义弹窗或者直接使用注入layer的弹窗等等。下面小编给大家带来了JS实现自定义弹窗,感兴趣的朋友一起看看吧
    2018-08-08
  • 通过action传过来的值在option获取进行验证的方法

    通过action传过来的值在option获取进行验证的方法

    通过action传过来的值在option获取进行验证,下面有个不错的示例,需要的朋友不要错过
    2013-11-11
  • JavaScript中对象property的读取和写入方法介绍

    JavaScript中对象property的读取和写入方法介绍

    这篇文章主要介绍了JavaScript中对象property的读取和写入方法介绍,本文讲解了原型继承链中property的读取、原型继承链中property的写入等内容,需要的朋友可以参考下
    2014-12-12

最新评论