MVC与MVVM区别

MVC与MVVM区别

最近学习,突然看见了vue(看了几节,略懂)和  MVVM

MVC: M管理(提取存储生成)了【数据】  ,  V【假设使用JSP,FreeMarker,则定义了一些固定的HTML代码和 动态的数据”占位符“ 】,   C 【将M 赋值给 V(中的占位符) , 输出HTML】  其实MVC很容易理解

问题   MVVM  我个人理解是   M不变   V和VM其实可以称得上是一个整体,即 使用如同 vue这样的框架,当C发送了M(json字符串数据)过来以后  直接渲染V   ,,这不就是代替了 JSP的功能,即代替了 C将M赋值给V的功能吗??         这是不是就是 MVC和 MVVM的区别??    (模板与视图的结合不再需要controlloer,而是通过vue,react这样的框架,用JavaScript直接渲染??)

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,同学可以这么理解。老师再按照自己的理解总结描述一下:

       M:Movel(数据模型)
  V:View
  VM:VM双向绑定:在 MVVM 框架中,View(视图) 和 Model(数据) 是不可以直接通讯的,在它们之间存在着 ViewModel 这个中间介充当着观察者的角色。当用户操作 View(视图),ViewModel 感知到变化,然后通知 Model 发生相应改变;反之当 Model(数据) 发生改变,ViewModel 也能感知到变化,使 View 作出相应更新。这个一来一回的过程就是我们所熟知的双向绑定。同学也可以参考一下这图

http://img1.sycdn.imooc.com//climg/5f4f3c36096859e908090372.jpg
由于vue相关知识老师不是非常的专业,所以,以上理解,同学可以作为参考,具体同学可以参考vue的官网 https://cn.vuejs.org/v2/guide/index.html 或看一下vue相关实战课程https://coding.imooc.com/class/203.html 哦。里边也有讲解mvvm模式哦。

http://img1.sycdn.imooc.com//climg/5f4f3c57098330ee08560319.jpg

祝:学习愉快~

  • py_builder 提问者 #1
    我个人理解: Vue就是充当了 VM(视图模板)的角色,,这个角色以前是 Controller(提取M的数据)提交给 ViewResolver,然后VResolver再结合 View(比如jsp模板,freemarker模板等等)渲染出HTML,最后将HTML给C,C再给用户浏览器,这就是MVC架构。 MVVC是MVC的优化版,因为不在需要Vresolver了,因此也没有jsp,freemarker模板了,,换成了 vue,,vue通过js语法 接收 C传来的M,,然后直接通过js渲染HTML,这其中其实就是 将 Controller和Vresoler的工作拉出来做了 应该就是这样吧,目前的大方向 (这样的好处是,真正让后端只管后端,只写restful,只传json,真正的不用再管前端,最多就写个文档说明参数名)
    2020-09-02 16:47:05
  • 好帮手慕小班 回复 提问者 py_builder #2
    同学你好,同学的理解也是正确的。 继续加油 祝:学习愉快~
    2020-09-02 18:34:17
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师