今天我們講講歷史,講講故事,不扯高深術語,
MV*表示的意思是:M(Model邏輯層) + View(視圖層) + *(中間者),上帝提出了這個邏輯與視圖分離,用中間者進行連接的偉大思想,并將實作這個思想的艱巨任務安排給人間,
人們紛紛躍躍欲試,想率先實作上帝布置的任務,隨著歷史的推移,不同時期先后出現了三個著名的中間者,他們依次是Controler、Presenter、ViewModel,
Controler是第一個吃螃蟹的小伙子,昵稱叫控制者,它與MV結合并自命名為MVC模式,它生平最大的貢獻是能把視圖層View的資料寫進邏輯層Model,但是很可惜,View不是通過它來讀取Model的資料,而是跳過它,直接讀取Model的資料,被“選擇性無視”的Controler大失顏面,這件事也讓它經常被后世取笑,

上帝很贊賞Controler的勇氣,但看著MVC這上下都不對稱的資料讀寫方式,感覺有些哭笑不得,顯然對Controler不是很滿意,
另外一個叫Presenter的小伙站了出來,他身材健碩,力大無窮,只見他自告奮勇地說:“我是Presenter,中文名叫主持人,以后視圖層和邏輯層他們之間的通信交給我來主持!”,
于是一個新的模式出現了---MVP模式,

這個模式看起來非常不錯,在試行了一段時間后,上帝也感覺非常滿意,它不僅對稱,還隔離了Model和View,與前輩Controler那種半中間者不同,Presenter是一個真正意義上完全體的中間者!
但令人沒有想到的是,好景不長,一段時間后Presenter突然暴斃,死因:過度勞累,
人們開始反思MVP模式存在的問題,雖然它隔離了Model和View,但是Presenter總是需要手動去幫助Model和View完成通信,是個“手動擋”,時間一長,Presenter里面的業務邏輯越來越重,終于有一天它不堪重負倒下了,
還能再選一個Presenter嗎?顯然不能,如此繁重的需要手動完成的活兒,選上去了就是等死啊,太累了,沒人想干,
不過江山代有人才出,人類的智慧真是無窮無盡,有一天一個看起來弱不禁風的小姑娘站了出來,她說道:“我叫ViewModel,也許我可以一試”,
民眾紛紛瞪大了雙眼,聯想到強壯如牛的Presenter都死得這么慘,這個看起來弱不禁風,身體幾乎透明的小女子,能承擔這樣繁重的任務嗎?
小女子說道:“我有三件法寶,分別喚作Angular,React和Vue,它們個個充滿魔力,不需要手動來回處理View和Model之間的那些瑣碎破事,它是自動完成的,用上它,你們甚至感覺不到我的存在,我就是這么6,大道至簡,一個真正完美的中間者可以讓人幾乎忘卻它的存在,”
民眾一片嘩然,
這,就是MVVM,它帶來了一個全新的理念:自動雙向系結,

一時間,全民歡騰,上帝也大為滿意,ViewModel的擁護者迅速增長,并迅速影響到全世界,
她是最好的中間者嗎?不知道,至少從目前來看,她是,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/151134.html
標籤:JavaScript
下一篇:JS DOM創建節點
