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实现双向绑定。 软件

相关文章
相关标签/搜索