Web前端開發 為何選擇MVVM而非MVC

2021-09-09 03:00:03 字數 959 閱讀 5269

在web中充斥著所謂的mvc框架,而在我看來,因為一些關鍵性的技術原因,mvc在web前端開發中根本無法使用(對的,是無法,而不是不該) 。

在mvc原始報告中指出:

view永遠不會知道使用者輸入,比如滑鼠操作和按鍵。

很顯然,在web前端,你無法做到這一點,因為web的程式中,使用者的輸入必須通過監聽視窗、文件和元素上的事件來獲得。——而這些東西常常被認為是view。

於是一些奇怪的認識誕生了,比如認為controller應該是view操作model的中介。

我曾經嘗試設計乙個程式設計模型讓所有的事件流經controller,但是事實上我發現這樣的做法非常糟糕。——這個嘗試讓我從mvc轉向了mvvm。

john gossman(wpf的架構師)在他的文章中提到,

model/view/viewmodel中的view表示可見元素,按鈕,窗體,圖形或者gui中更複雜的控制項,它會對快捷鍵進行編碼,並且控制項自身會管理跟輸入裝置的互動——這在mvc中本該是controller負責的(現代gui環境中發生在controller上的事情是很長的題外話……我傾向於認為它只是隱藏到後台了,它仍然存在,但是我們不需要像是2023年那樣考慮那麼多事情了)

mvc這樣的結構的正確性在於,任何介面都需要面對乙個使用者,而controller 「是使用者和系統之間的鏈結」。在經典mvc中,controller要做的事情多數是派發使用者輸入給不同的view,並且在必要的時候從view中獲取editor來更改model,而web以及絕大多數現在的ui系統中,controller的職責已經被系統實現了。下面的說明了這樣的演進過程:

總而言之,對於mvc

對於mvvm

作為乙個web開發者,在二者之間做出何種選擇是顯而易見的。

軟體開發為何這麼難???

對於企業應用而言,目前主要的模式就是c s或b s,它們都可以歸入客戶機 伺服器模式,如下圖所示 客戶端輸入一些資訊提交後,伺服器進行加工處理,然後返回一些資訊。就如此簡單,但為什麼我們的軟體開發卻如此之難啊!這麼多年來我們怎麼還沒擺脫brooks先生的魔咒,在焦油坑中苦苦掙扎。這算我發起的乙個話題...

小猿圈web前端開發為什麼需要HTTPS

在http協議中有可能存在資訊竊取或身份偽裝等安全問題。使用https通訊機制可以有效地防止這些問題。http協議存在的哪些問題 通訊使用明文 不加密 內容可能被竊聽 由於http本身不具備加密的功能,所以也無法做到對通訊整體 使用http協議通訊的請求和響應的內容 進行加密。即,http報文使用明...

我的 web 前端開發技術選擇

簡單介紹一下,我的 web 前端開發技術選擇。我更偏向於使用 jquery 及其外掛程式 css3 html5。先來乙個 以下是我常用的 web 前端開發技術 我常用的 web 前端開發技術 技術分類 web 前端技術 備註css 網頁布局 zurb foundation 移動優先的網格系統,同一頁...