뷰모델을 사용하기위해 액티비티나 프래그먼트에서 초기화 할 때
의 코드가 매번 헷갈려서
이번기회에 한번 정리해볼려고 한다.
🏹 먼저 프래그먼트
private val viewModel: TodoViewModel by lazy {
ViewModelProvider(
this
)[TodoViewModel::class.java]
}
private val viewModel: TodoViewModel by viewModels()
🎱 마지막으로 액티비티!
private val viewModel: TodoViewModel by lazy {
ViewModelProvider(
requireActivity()
)[TodoViewModel::class.java]
}
🏹 프래그먼트
private val viewModel: ChatListViewModel by viewModels()
private val viewModel: ChatListViewModel by viewModels {
ChatListViewModelFactory()
}
private val viewModel: TodoViewModel by viewModels()
🎱 액티비티
private val viewModel: ChatListViewModel by activityViewModels()
private val viewModel: ChatListViewModel by activityviewModels {
ChatListViewModelFactory()
}
implementation("androidx.activity:activity-ktx:1.8.0")
implementation("androidx.fragment:fragment-ktx:1.3.6")