mvvm现在已经是很流行的框架设计模式,之所以流行,是因为好用,那么从之前的mvc框架到现在的mvvm框架到底发生了什么变革呢。mvvm和mvc有什么本质区别呢。接下来解决这两个问题。
1,什么是mvc
model-view-controller
特点:controller 的业务逻辑部分写在后端,写在前端后使得js控制层变得越来月难以维护
model,view和controll未完全分离(如backbone)
出现比较早,全栈开发用的多些,前端mvc相对较少
2,什么是mvvm
特点:viewModel桥梁, 业务逻辑抽离封装,易于复用
ViewModel存在目的在于抽离Controller中展示的业务逻辑,而不是替代Controller,其它视图操作业务
等还是应该放在Controller中实现。
也就是说MVVM实现的是业务逻辑组件的重用
自动渲染
3,mvc到mvvm
mvc出现的时间比较早,前端并不那么成熟,很多业务逻辑也是在后端实现,
所以前端并没有真正意义上的MVC模式。
而我们今天再次提起MVC,是因为大前端的来到,出现了MVVM模式的框架
为什么出现mvvm
1,很多原本在服务器的代码放在了浏览器中,javascript代码越来越多,连接着各式各样的HTML和css文件,缺乏组织形式,不宜维护,随着项目的扩大,扩展性较低
2,手动操作dom,性能低
3,现代浏览器兼容性提高,当年为了解决浏览器兼容性,出现了许多js的库,jquery是代表,但这类库没有将业务逻辑独立出来,维护性和扩展性极差
4,浏览器性能的提升,兼容性的提高,解决了一些原来不能解决的问题,所以出现了mvvm框架,业务逻辑独立出来,可复用
4,vue实现
data=>Object.defineProperty() <=>Watcher<=>Compile
参考:https://baijiahao.baidu.com/s?id=1596277899370862119&wfr=spider&for=pc