Kotlin 視圖模型(ViewModel)是一種用于管理 UI 控制器之間數(shù)據(jù)傳遞的架構(gòu)組件,它可以提高效率并簡化代碼。以下是一些使用 Kotlin 視圖模型來提高效率的方法:
class MyViewModel : ViewModel() {
// 生命周期感知的代碼
}
LiveData
和 StateFlow
等數(shù)據(jù)持有方式,這些數(shù)據(jù)類型能夠自動(dòng)更新 UI,無需手動(dòng)通知觀察者。class MyViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String> get() = _data
fun updateData(newData: String) {
_data.value = newData
}
}
class MyViewModel : ViewModel() {
fun fetchData() {
// 業(yè)務(wù)邏輯
}
fun processData(data: String) {
// UI 邏輯
}
}
class MyViewModel : ViewModel() {
// ViewModel 不會(huì)被銷毀,直到它關(guān)聯(lián)的 Activity 或 Fragment 被銷毀
}
MediatorLiveData
可以合并多個(gè) LiveData 源,自動(dòng)處理數(shù)據(jù)沖突,簡化數(shù)據(jù)聯(lián)合操作。class MyViewModel : ViewModel() {
private val _data1 = MutableLiveData<String>()
val data1: LiveData<String> get() = _data1
private val _data2 = MutableLiveData<String>()
val data2: LiveData<String> get() = _data2
val combinedData: LiveData<String> = MediatorLiveData<String>().apply {
addSource(data1) { value ->
value?.let { postValue(it + "_from_data1") }
}
addSource(data2) { value ->
value?.let { postValue(it + "_from_data2") }
}
}
}
通過以上方法,Kotlin 視圖模型能夠有效地提高應(yīng)用程序的效率和可維護(hù)性。