Ответ
В Compose side effects — это операции, выходящие за рамки композиции, например, подписки, анимации или работа с жизненным циклом. Основные side effect API:
- LaunchedEffect — для корутин внутри композиции. Выполняется при входе в композицию и отменяется при выходе.
LaunchedEffect(key) {
// Асинхронные операции
}
- DisposableEffect — для ресурсов, требующих очистки (например, подписки).
DisposableEffect(key) {
val subscription = subscribe()
onDispose { subscription.unsubscribe() }
}
- SideEffect — для синхронных операций после успешной рекомпозиции.
SideEffect {
// Обновление внешнего состояния
}
-
rememberCoroutineScope — для запуска корутин вне композиции (например, по клику).
-
produceState — преобразует внешнее состояние в состояние Compose.
Используйте их осторожно, чтобы избежать утечек памяти и неожиданного поведения.