MVVM使用實踐

2021-09-11 12:58:40 字數 881 閱讀 9180

這篇博文是針對目前公司所在的團隊使用mvvm(具體可以看limboy的博文)的乙個問題總結和建議規範,記錄在此以作備份。 首先再把這張圖拿出來看看:

總結來說,團隊在使用mvvm模式的過程當中普遍存在的問題:

-----------分割線---------------

什麼時候需要建立viewmodel?

已經在實踐的: 1.viewcontroller-viewmodel 2.tableviewcell/collectionviewcell-viewmodel 可擴充套件的: 任何展示業務邏輯複雜的view,均可以建立其對應的viewmodel(建議在該view需要響應使用者事件來改變model時使用),簡單的情況下可以通過在標頭檔案暴露subview的readonly指標,由持有viewmodel的view來修改subview的顯示;

viewmodel能否復用?

一般情況不建議復用,viewmodel和v(vc)是乙個一一對應的關係,viewmodel的復用一般情況下就意味著乙個邏輯複雜的view(vc)的復用,這類情況在一般的產品中比較少見,如果強行復用vc帶來的問題遠比提公升的效率要多。

應該放一些什麼樣的**在viewmodel中?

很簡單,任何對model的操作都可以移至viewmodel,比如說:獲取(網路請求/讀資料庫/讀檔案)、儲存(遠端儲存/本地儲存)等; view(vc)在任何時候拿到的model,都建議從viewmodel中去獲取,換句話說,viewmodel是ui資料的**,資料應該儲存在viewmodel中,然後和ui繫結。

如何優雅地繫結v和vm?

目前的繫結關係沒有問題,但是需要乙個建議規範,view不再直接持有任何model,而是通過監聽viewmodel的result,在任何時候result發生變化,只需要取出viewmodel中的model,更新ui;

MVVM使用實踐

這篇博文是針對目前公司所在的團隊使用mvvm 具體可以看limboy的博文 的乙個問題總結和建議規範,記錄在此以作備份。首先再把這張圖拿出來看看 總結來說,團隊在使用mvvm模式的過程當中普遍存在的問題 分割線 什麼時候需要建立viewmodel?已經在實踐的 1.viewcontroller vi...

MVVM教程 使用MVVM總結

提到幾點錯誤使用mvvm的徵兆 1.你的模型和檢視模型名字相同。檢視模型不應該是對模型的包裝。檢視模型的職責是外部服務的請求中介,比如載入和儲存資料。而資料本身,以及驗證和大多數業務邏輯應該放在模型裡。我經常強調這點。每當你建立乙個檢視模型包裝乙個模型,你就在你的api裡引入乙個巨大漏洞。具體地,任...

實踐出真知 MVC和MVVM

理論來自於實踐,並指導於實踐 佚名 我相信在mvc等理論形成之前,就已經有人在付諸mvc的實踐。只是後來有人總結下來,並指導人們做軟體開發。這種設計典範並不是只有後台的 才有,前端也可以有很好的框架,像react和vue。為什麼這麼強調實踐。因為在我學習mvc理論的時候,我是蒙蔽的。雖然看了很多優秀...