10-19 钟申义 日志
10-19 钟申义 日志
什么是MVVM/MVC,他们的区别?
什么是MVVM:
传统前端三大部分:html;css;js。
缺点:html和css的功能都太弱了,对于页面的改变都要js来编写,就导致需要js编写大量的重复的增删改查操作。
现代前端三大部分:数据模型(mdel) ;界面(view); 控制器(viewmodel):试图模型/控制
数据模型(model):集中保存界面中的所有变量名和变量值。模型,指程序中创建的或者从远程获取的数据,
一般使用js中的data对象保存,类容会直接显示在view中。
界面(view):视图,指网页中的元素和样式,一般指的就是html和css。view是html网页中的一个需要动态加载的父元素(“div#app”)。
html中的视图,也被称为模板template,如果发生template错误,那么就在HTML中查找就可以了。
控制器(viewmodel):试图模型/控制:用于替代之前的Dom/jquery操作,封装了重复的增删改查操作,把模型中的数据和view中
的HTML元素“绑定”到一起。 vue类型提供的就是一种强大的viewmodel对象,可以自动同步数据和页面元素。
专门负责自动将模型中的变量值同步到界面中去
mvc:
MVC是 Model-View- Controller 的简写。即模型-视图-控制器。MVC中的M和V的意思和MVVM中的M和V指的意思一样。C即Controller指的是页面业务逻辑。
使用MVC的目的就是将模型和视图的代码分离。MVC是单向通信。也就是View和Model必须通过Controller来承上启下。MVC和MVVM的区别并不是VM取代了C,
ViewModel存在的目的在于抽离Controller中展示的业务逻辑,而不是替代Controller,其它视图操作操作业务等还是应该放在Contronller中实现。也就是所MVVM实现的是业务逻辑组件的重用。由于mvc出现的时间比较早,前端并不那么成熟,很多业务逻辑也是在后端实现,所以前端并没有真正意义上的MVC模式
mvvm和mvc区别:
都是一种设计思想。主要就是mvc中Controller演变成mvvm中的viewModel。 mvvm主要解决了mvc中大量
的DOM 操作使页面渲染性能降低,加载速度变慢, 影响用户体验。vue数据驱动,通过数据来显示视图层而不是节点操作。
评论