簡體   English   中英

MVVM:復雜的View / ViewModel->多個LiveData對象?

[英]MVVM: Complex View/ViewModel -> Multiple LiveData objects?

大多數MVVM示例都處理非常簡單的用戶界面。

但可以說我有一個活動,其中有許多要更新的視圖(即大量數據)

正如我在其他地方讀到的那樣,多個ViewModel對象是一種錯誤的模式。

因此,正如我所見,有兩種解決方案:

  1. 創建一個包裝所有其他數據對象的單個對象(以及單個LiveData)。
    但這有一個問題-每個要更新的數據對象都會導致整個UI進行更新。

  2. 創建多個對象(以及多個LiveData對象)。
    這意味着我需要觀察每個LiveData對象。 這種模式有問題嗎?

提前致謝!

您提到的第一點:是的,這不是最佳的模式,但是如果數據量較小,則分離LiveDatas會增加工作量,但收益卻減少

您提到的第二點:是的,這是最佳選擇,您可以為要更新的每個View都擁有一個LiveData對象,並從活動或片段中觀察它們。 此模式沒有問題。

關於Mutilple ViewModels:如果一個ViewModel中發生的事情太多(LiveData對象或函數),則在同一活動/片段中使用多個ViewModels模式也是一種選擇。 僅建議這樣做以使viewModels更輕。 因此,僅當您擁有大型viewModel類時才使用此方法

  1. 創建ViewModel以獲取離散類型的信息。

例如,您可以擁有一個UserViewModel來處理有關User所有狀態。 這意味着您可以在另一個上下文中使用相同的ViewModel ,而無需提取不必要的數據(就像您只有一個God ViewModel )。

  1. 根據需要創建盡可能多的LiveData對象以對視圖進行建模。

在可能的情況下,最好將數據壓縮為邏輯對象。 如果僅僅是為了使事情易於管理。

如果您有一個User ,則應將其用於LiveDataLiveData為電子郵件地址,顯示名稱,年齡等使用LiveData 。這將使數據綁定的過程變得簡單得多。 嘗試將所有內容按邏輯分組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM