MVC和MVVM

五年前,那时候php还很火,社区充满了php的文章……几乎每个月都有新框架的产生并宣称吊打一切,然后每个月都有框架在倒闭……

突然有一天就变天了,php已经不是世界上最好的语言,现在py和golang就火起来了……

社区内整天讨论前端的轮子,react、vue、angular……也是那个状态,几乎每个产生的新轮子都在宣称吊打一切,然后……然后倒闭了呗2333

与此同时,mvvm也被讨论着,炒作着……

我个人写过了mvc和mvvm的网站,觉得其实直白看待两种模式其实很简单。

首先,mvc和mvvm是个啥?

直白的讲,就是字面意思,一个是model+view+controller,一个是model+view+viewmodel

纯字面意思,这有啥可探讨的嘛……

这些个字面意思都在干啥事儿,model操作数据库,view控制视图,controller负责业务逻辑,或者……

model操作数据库,viewmodel操作要在view渲染的数据(接口),view负责渲染……

就是就是这么直白……有啥不懂的嘛……

然后,各有什么优缺点?

mvc的优点就是view层很轻薄,也很传统,前端几乎只需要页面重构,后端工作量大一点……

而且无比简单,不要考虑接口啥的,甚至php搭个环境就完事儿了……

mvc的缺点就是,控制器太重了,负责了几乎全部的业务逻辑,而且这么重的情况下,几乎无法复用,不太符合工程化思想……

然后前端干的活太少了,没办法加薪和装逼了……

mvvm的优点就是,业务逻辑可以由前端负责了,可以拆分组件了,也可以装逼加薪了,似乎看上去更符合主流的组件化,工程化思想了……

mvvm的缺点……就是工程化带来的繁琐,比如我们做一个有pc端,移动端,和后台端的全栈网站,加上后端和数据库,需要同时开五个接口!五个控制台!

如果一个人来写……就比较悲剧了……公司还分工配合着::>_<::一个人就该绝望了……

以上……就是优缺点,也很直白,真的其实没啥可说的……原谅我的凑字数::>_<::

最后,如何正确对待这两种模式?

其实两种都是比较成熟的模式,直白的说,当你一个人全栈,写个个人博客啥的,mvc无疑是很省事儿的(前提是你的后端基础还行),效率满满的√

但是如果在公司,你作为一个前端人员(比如我),是很期望mvvm的,先不说加薪装逼,就只当成甩锅,就很方便……

反正只要拿到接口就可以为所欲为了不是吗(⊙o⊙)…

以上……说的挺直白的,大家不要在意,以后不要再有mvvm优越,鄙视mvc的情况啦……事实上这俩东西就是个字面意思,一秒钟就能转换……

原文地址:https://www.cnblogs.com/dongwenfei/p/8134060.html