怎样理解MVVM模式

一、什么是MVVM

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

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

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

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

        <div id="app">
        <p>{{msg}}</p>
        </div>
        <script>
    	var vm=new vue({//创建一个Vue实例
    el:"#app",//定位区域
    data:{
	 msg:'hello world'//将会渲染到html代码msg的变量里
}
    })
    	</script>

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

<div id="app">
 <p>{{msg}}</p>
</div>

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

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

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

  <div id="app">
   <p>{{msg}}</p>
     </div>

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

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

代表的就是MVVM中的Model了

三、总结

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

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

Thanks for Browsing

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值