необходимости в них если использовать вьюмодель. Ну например вот этот пример из доки. Мы же могли бы в init вьюмодели запустить таймер же и при рекомпозиции он бы не стартовал заново... Зачем тут LaunchedEffect? Можете в двух словах пояснить за необходимость использования сайдэффектов? Или это мотивирует нас отказаться от использования вьюмоделей?
Конкретно тут, если смотреть конкретно на запуск — разницы особо не будет. Но с эффектом у тебя есть возможность легко перезапустить его по условию, в случае с VM это будет не так лаконично. Ну и да, VM давно пора закопать, да поглубже, особенно с компоузом.
Но разве используя вьюмодель мы не можем перезапустить счетчик по какому-то условию? Ну а про "закопать вьюмодель поглубже" так и думал, спасибо)
Можем. Но что проще (и красивее): Отдельный метод, который вызывается во viewModel.init и где-то ещё Или эффект у которого условие перезапуска аргументом передается.
Ну пока что, для человека, который не так давно изучает compose и привык к вьюмодели и вот этому вот всему, проче и красивее рулить всем из вьюмодели) Ну смысл я понял, надо менять привычки и двигаться к тому, что скоро вьюмодели забудутся совсем) Спасибо еще раз
Забудутся — вряд ли. Слишком много людей которые не хотят даже пытаться избавиться от этой привычки ч которая тут лишняя. Так что если очень хочется — вм ещё долго будет стандартом (плак).
что использовать вместо них?
Кстати, столкнулся действительно с необходимостью использовать LaunchedEffect)) Для того чтобы реквестнуть фокус на определенной вьюшке, полагаю что без эффекта это с композом никак не сделать, вот и ответ пришел, как оно часто бывает пока нет необходимости что-то использовать думаешь "да нафига это вообще придумали если можно и обойтись"))
Обсуждают сегодня