1. 程式人生 > >MVC和MVVM

MVC和MVVM

討論 邏輯 帶來 gpo log 思想 簡單 我們 社區

五年前,那時候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的情況啦……事實上這倆東西就是個字面意思,一秒鐘就能轉換……

MVC和MVVM