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 视图模型能够有效地提高应用程序的效率和可维护性。