Kotlin 視圖模型(ViewModel)是一種用于管理 UI 控制器之間數據傳遞的架構組件,它可以提高效率并簡化代碼。以下是一些使用 Kotlin 視圖模型來提高效率的方法:
class MyViewModel : ViewModel() {
// 生命周期感知的代碼
}
LiveData
和 StateFlow
等數據持有方式,這些數據類型能夠自動更新 UI,無需手動通知觀察者。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() {
// 業務邏輯
}
fun processData(data: String) {
// UI 邏輯
}
}
class MyViewModel : ViewModel() {
// ViewModel 不會被銷毀,直到它關聯的 Activity 或 Fragment 被銷毀
}
MediatorLiveData
可以合并多個 LiveData 源,自動處理數據沖突,簡化數據聯合操作。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 視圖模型能夠有效地提高應用程序的效率和可維護性。