vue中mvvm和mvc的区别有哪些

mvvm和mvc的区别:1、mvvm各部分的通信是双向的,而mvc各部分通信是单向的。2、MVVM实现了view与model的自动同步,也就是model属性改变时,不需要手动操作dom元素去改变view的显示,而是改变属性后该属性对应的view层会自动改变。

vue中mvvm和mvc的区别有哪些

本教程操作环境:windows7系统、vue3版,DELL G3电脑。

MVC是什么

MVC是一种设计模式:

M(Model):模型层。是应用程序中用于处理应用程序数据逻辑的部分,模型对象负责在数据库中存取数据;
V(View):视图层。是应用程序中处理数据显示的部分,视图是依据模型数据创建的;
C(Controller):控制层。是应用程序中处理用户交互的部分,控制器接受用户的输入并调用模型和视图去完成用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。

立即学习“前端免费学习笔记(深入)”;

1.png

2.png

MVVM是什么

vue框架中MVVM的M就是后端的数据,V就是节点树,VM就是new出来的那个Vue({})对象

M(Model):模型层。就是业务逻辑相关的数据对象,通常从数据库映射而来,我们可以说是与数据库对应的model。
V(View):视图层。就是展现出来的用户界面。
VM(ViewModel):视图模型层。连接view和model的桥梁。因为,Model层中的数据往往是不能直接跟View中的控件一一对应上的,所以,需要再定义一个数据对象专门对应view上的控件。而ViewModel的职责就是把model对象封装成可以显示和接受输入的界面数据对象。

3.png

 View与ViewModel之间通过双向绑定建立联系,这样当View(视图层)变化时,会自动更新到ViewModel(视图模型),反之亦然。

4.png

MVVM的优势

1、mvc和mvvm都是一种设计思想。 主要就是mvc中Controller演变成mvvm中的viewModel。 mvvm主要解决了mvc中大量DOM操作使页面渲染性能降低,加载速度变慢的问题 。

2、MVVM与MVC最大的区别就是:它实现了View和Model的自动同步:当Model的属性改变时,我们不用再自己手动操作Dom元素来改变View的显示,它会自动变化。

3、整体看来,MVVM比MVC精简很多,我们不用再用选择器频繁地操作DOM。

MVVM并不是用VM完全取代了C,ViewModel存在目的在于抽离Controller中展示的业务逻辑,而不是替代Controller,其它视图操作业务等还是应该放在Controller中实现

MVC与MVVM有什么区别

区别一:

mvvm各部分的通信是双向的,而mvc各部分通信是单向的。

区别二:

MVVM 与 MVC 最大的区别就是:它实现了View和Model的自动同步

当Model属性改变时,不用手动操作Dom元素去改变View的显示。

而改变属性后,该属性对应View的显示会自动改变

MVVM响应式原理

vue是采用数据劫持配合发布者-订阅者的模式的方式,通过Object.defineProperty()来劫持各个属性的getter和setter,在数据变动时,发布消息给依赖收集器(dep中的subs),去通知(notify)观察者,做出对应的回调函数,更新视图MVVM作为绑定的入口,整合Observer,Compile和Watcher三者,通过Observer来监听model数据变化,通过Compile来解析编译模板指令,最终利用Watcher搭起Observer,Compile之间的通信桥路,达到数据变化Observer)=>视图更新视图交互变化=>数据model变更的双向绑定效果。

【相关推荐:vuejs视频教程、vuejs视频教程】

以上就是vue中mvvm和mvc的区别有哪些的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2923348.html

(0)
上一篇 2025年3月11日 18:46:54
下一篇 2025年3月11日 18:47:02

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 用vue写的页面后缀名是什么

    用vue写的页面后缀名是“.vue”。“.vue”文件是一个自定义的文件类型,用类HTML语法描述一个Vue组件;一个vue文件就是一个组件。vue页面有3个组成部分:1、模板(template),即template标签包裹的界面展示代码(…

    2025年3月11日 编程技术
    200
  • vue遍历对象属性的方法有哪些

    遍历对象属性的方法有:1、使用v-for指令遍历出对象的key和value,语法“v-for=”(val,key,i) in obj””;2、用Object.keys()遍历对象的键和值,语法“Object.keys…

    2025年3月11日 编程技术
    200
  • vue事件总线废除了吗

    vue3取消了全局事件总线,废除原因是安全性低。全局事件总线是一个全局任意组件通信技术,即任意组件间的通信均可实现。在vue3中,如果想要使用全局事件总线,需要引入第三方库mitt或tiny-emitter。 本教程操作环境:windows…

    2025年3月11日
    200
  • vue支持ie6么

    vue不支持ie6;vue官方声明是支持ie8以上版本的。不支持原因:1、ie8及以下版本不支持“Object.defineProperty”方法,但该方法是vue实现响应式的所必须的;2、Vue需要Promise的支持,而IE8及以下版本…

    2025年3月11日
    200
  • vue中mounted和created有什么区别

    区别:1、created在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图;mounted在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。2、created中无法对chart…

    2025年3月11日 编程技术
    200
  • 安装vue devtools失败怎么办

    安装vue devtools失败的解决办法:1、在官网下载“vue-devtools”压缩包并解压;2、安装git bash;3、在终端cd到“devtools-main”文件夹中;4、执行“npm install yarn -g”命令;5…

    2025年3月11日 编程技术
    200
  • vue怎么修改父组件值

    vue修改父组件值的方法:1、通过props的方式,将父组件的方法传递到子组件,在子组件中通过props接收;2、通过“this.$emit”触发父组件方法实现修改;3、通过“this.$parent”直接触发父组件修改即可。 本教程操作环…

    2025年3月11日
    200
  • vue二级路由报错怎么办

    vue二级路由报错的解决办法:1、检查并删除二级路由路径前面的斜杠;2、检查父路由是否有path,若path是斜杠,则redirect直接匹配page2;3、不使用redirect,并设置默认显示的子路由path为空即可。 本教程操作环境:…

    2025年3月11日
    200
  • vue怎么禁止返回到上一页

    vue禁止返回到上一页的方法:1、通过“npm install vue-prevent-browser-back –save”命令安装“vue-prevent-browser-back”;2、使用“import preventB…

    2025年3月11日
    200
  • vue项目部署乱码怎么办

    vue项目部署乱码的解决办法:1、执行“npm run build”命令;2、通过在“index.html”添加内容“”来解决乱码问题即可。 本教程操作环境:Windows10系统、Vue 3版、Dell G3电脑。 vue项目部署乱码怎么…

    2025年3月11日
    200

发表回复

登录后才能评论