MOBILEPROGLIB Telegram 6290
🤡 Побочные эффекты в Jetpack Compose — простое объяснение

В Jetpack Compose не рекомендуется напрямую вызывать не-компонуемые функции внутри composable-функций.

Вместо этого, чтобы безопасно выполнять операции вроде запуска корутин, вызова побочных эффектов или обработки логики, зависящей от жизненного цикла, используются обработчики эффектов (effect handlers).

Эти обработчики позволяют безопасно взаимодействовать с внешним миром (сеть, база данных, логи и т. д.) в контролируемом виде.

Ниже приведены самые распространённые обработчики эффектов в Compose — просто и с примерами.

🔹 SideEffect

Выполняет логику после каждого успешного пересоздания (recomposition).

SideEffect {
Log.d("TAG", "Recomposition completed")
}


Подходит для логирования, аналитики или любых операций, которые должны выполняться после отрисовки интерфейса.

🔹 LaunchedEffect

Запускает корутину, когда изменяется указанный ключ. Если происходит пересоздание и ключ меняется — предыдущая корутина отменяется, и запускается новая.

LaunchedEffect(key1 = someState) {
fetchData()
}


Идеально подходит для вызова API или выполнения логики, зависящей от изменяющегося состояния.

🔹 rememberCoroutineScope

Предоставляет область действия корутины, которая сохраняется между пересозданиями. Лучше всего использовать, когда нужно запускать корутины в ответ на действия пользователя (например, нажатие кнопки).

val coroutineScope = rememberCoroutineScope()
Button(onClick = {
coroutineScope.launch {
doSomething()
}
}) {
Text("Click me")
}


Для событий, инициируемых пользователем, которые не зависят напрямую от состояния или жизненного цикла.

🔹 DisposableEffect

Выполняет код при входе в композицию и очищает ресурсы при выходе из неё.

DisposableEffect(key1 = someKey) {
startListening()


    onDispose {
stopListening()
}
}


Добавление или удаление слушателей, наблюдателей, освобождение внешних ресурсов и другая логика очистки.

🐸 Библиотека мобильного разработчика

#буст #JuniorKit #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3



tgoop.com/mobileproglib/6290
Create:
Last Update:

🤡 Побочные эффекты в Jetpack Compose — простое объяснение

В Jetpack Compose не рекомендуется напрямую вызывать не-компонуемые функции внутри composable-функций.

Вместо этого, чтобы безопасно выполнять операции вроде запуска корутин, вызова побочных эффектов или обработки логики, зависящей от жизненного цикла, используются обработчики эффектов (effect handlers).

Эти обработчики позволяют безопасно взаимодействовать с внешним миром (сеть, база данных, логи и т. д.) в контролируемом виде.

Ниже приведены самые распространённые обработчики эффектов в Compose — просто и с примерами.

🔹 SideEffect

Выполняет логику после каждого успешного пересоздания (recomposition).

SideEffect {
Log.d("TAG", "Recomposition completed")
}


Подходит для логирования, аналитики или любых операций, которые должны выполняться после отрисовки интерфейса.

🔹 LaunchedEffect

Запускает корутину, когда изменяется указанный ключ. Если происходит пересоздание и ключ меняется — предыдущая корутина отменяется, и запускается новая.

LaunchedEffect(key1 = someState) {
fetchData()
}


Идеально подходит для вызова API или выполнения логики, зависящей от изменяющегося состояния.

🔹 rememberCoroutineScope

Предоставляет область действия корутины, которая сохраняется между пересозданиями. Лучше всего использовать, когда нужно запускать корутины в ответ на действия пользователя (например, нажатие кнопки).

val coroutineScope = rememberCoroutineScope()
Button(onClick = {
coroutineScope.launch {
doSomething()
}
}) {
Text("Click me")
}


Для событий, инициируемых пользователем, которые не зависят напрямую от состояния или жизненного цикла.

🔹 DisposableEffect

Выполняет код при входе в композицию и очищает ресурсы при выходе из неё.

DisposableEffect(key1 = someKey) {
startListening()


    onDispose {
stopListening()
}
}


Добавление или удаление слушателей, наблюдателей, освобождение внешних ресурсов и другая логика очистки.

🐸 Библиотека мобильного разработчика

#буст #JuniorKit #Android

BY Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck


Share with your friend now:
tgoop.com/mobileproglib/6290

View MORE
Open in Telegram


Telegram News

Date: |

Write your hashtags in the language of your target audience. 6How to manage your Telegram channel? Content is editable within two days of publishing Channel login must contain 5-32 characters Telegram desktop app: In the upper left corner, click the Menu icon (the one with three lines). Select “New Channel” from the drop-down menu.
from us


Telegram Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
FROM American