怎样理解MVVM模式

通过vue.js的简单代码来解释什么是MVVM模式

  • 一、什么是MVVM
  • 二、Vue基本代码和MVVM模式之间的对应关系
  • 三、总结
  • Thanks for Browsing

一、什么是MVVM

刚接触前端框架的人对MVVM模式可能难以理解,MVVM模式的全称是Model-View-ViewModel模式,当View的视图层发生变化时,会自动更新到ViewModel视图模型,反之亦然,也就是常说的数据双向绑定;通过图示了解一下三者之间的关系:
怎样理解MVVM模式_第1张图片

ViewModel相当于MVC模式的controller,当视图层发生改变时,会通过ViewModel将数据更新到Model,当Model发生变化时也会通过中间的控制层更新到视图层。

二、Vue基本代码和MVVM模式之间的对应关系

先来看一段基本的Vue代码:

        

{{msg}}

初步接触vue.js的人应该都有写过类似的代码(每学一种语言或者框架都会不自觉的写Hello World),现在来定位一下MVVM分别对应上述代码的哪些部分:
显而易见

{{msg}}

这段对应的就是视图层View,也就是编译后会直接显示在页面上的。

而new出来的Vue实例也就是后面的Script标签里面的代码所代表的就是ViewModel视图模型,它通过控制view层的元素代码,将数据渲染到指定的元素区域内,我们也就不需要再去操作DOM元素了。

最后就是Model层了,其所代表的是模型层,也就是数据所在的区域,

  

{{msg}}

这段代码的{{msg}}所显示的就是数据,而这个数据是在vue实例中的data选项来的,因此可以确定

  data:{
   		 msg:'hello world'//将会渲染到html代码msg的变量里
    }

代表的就是MVVM中的Model了

三、总结

当然,在学习MVVM模式的过程中其实并不需要过多的去注意MVVM三者的界限在哪,而且这在使用过程中似乎也并没有那么重要,个人认为在学习某一种前端框架的时候,最重要的还是要去理解这一模式的基本思想。

ps:初来乍到,请多指教,有不妥的地方,敬请指出并纠正

Thanks for Browsing

你可能感兴趣的:(前端)