Вызов нескольких функций ViewModel на экране против одной функции ViewModelAndroid

Форум для тех, кто программирует под Android
Anonymous
Вызов нескольких функций ViewModel на экране против одной функции ViewModel

Сообщение Anonymous »


Скажем, в OrderScreen у нас есть OrderViewModel(orderRepository) и UserViewModel(userRepository).

Подход №1:

class OrderViewModel(private val orderRepository: OrderRepository) : ViewModel() { весело doSomething() = viewModelScope.launch { заказРепозиторий.doSomething() } } класс UserViewModel(private val userRepository: UserRepository): ViewModel() { весело doSomething() = viewModelScope.launch { userRepository.doSomething() } } @Композитный забавный OrderScreen( OrderViewModel: OrderViewModel = viewModel(), userViewModel: UserViewModel = viewModel() ) { someButton.setOnclickListener { заказViewModel.doSomething() userViewModel.doSomething() } } Подход №2:

класс OrderViewModel( частный вал orderRepository: OrderRepository, частный val userRepository: UserRepository ) : ViewModel() { весело doSomething() = viewModelScope.launch { заказРепозиторий.doSomething() userRepository.doSomething() } } @Композитный весело OrderScreen (orderViewModel: OrderViewModel = viewModel()) { someButton.setOnclickListener { заказViewModel.doSomething() } } Какой из них лучше и почему? Спасибо.

Вернуться в «Android»