浅谈对Vue.js的MVVM的理解

Vue.js  最近很火  这两天看了代码以及项目 本地运行了一下  感觉主要还是用来做SPA单页应用  


谈到整体的架构 肯定要跟MVC做对比 


典型的MVC结构  就是  M-----Model   模型

                                     V------View   视图

                                     C------Controller  控制器  


现在的vue 采用的是 MVVM    也就是  M----Model   模型  

                                                            V----View   视图

    VM------ViewModel   

具体两者有什么区别呢???

下面看一段最简单的vue代码

<div id="app">

    <div v-html="message"></div>

</div>

<script>

    new Vue({

          el:"#app",

    data:{

    message:'<h1>姑娘这鸡汤有毒哇</h1>'

}

     })

</script>

这事一段最基本的vue数据绑定的代码  新建了一个vue对象  绑定了data属性


对于这段的解析就是  当把一个普通的javascript对象传给vue实例来作为他的data选项的时候  vue将便利他的属性  



MVC的看法是 界面山的每一个变化都是一个事件  我们只需要针对每个事件来写一堆代码 来吧用户的输入转化成model里的对象

这对代码就是controller


但是MVVM不是这样想的

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

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

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

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



                                                                                                   

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值