美文网首页
MutableLiveData与LiveData区别

MutableLiveData与LiveData区别

作者: Kael_Zhang的安卓笔记 | 来源:发表于2022-08-16 14:18 被阅读0次

MutableLiveData的作用

LiveData 设计之初应该是为了 view 和 viewmodel 之间的通信,MutableLiveData是LiveData 的子类,viewmode有若干MutableLiveData,view则监听这些 MutableLiveData来刷新UI,这也是mvvm的基础思想

MutableLiveData与LiveData区别

view 通过持有viewmodel对象,注册监听MutableLiveData,那MutableLiveData必须是对view暴露,否则不能访问还监听个毛线,那既然可以访问,那就可以调用MutableLiveData的方法,包括post等方法,但这并不是我们想要的结果,view除了监听MutableLiveData,不应该做别的事情,这个时候LiveData 就体现了它的作用

  • LiveData 不可变 ,对外暴露时安全 ,只能监听,post等方法已屏蔽
  • MutableLiveData 可变,对外暴露时不安全

用法

    val x: LiveData<T> get() = _x //对外暴露为LiveData
    private val _x = MutableLiveData<T>() //对内使用 MutableLiveData 操作

相关文章

网友评论

      本文标题:MutableLiveData与LiveData区别

      本文链接:https://www.haomeiwen.com/subject/jcinbrtx.html