App노자
[Jetpack Compose] DisposableEffect 본문
1. DisposableEffect란?
DisposableEffect는 Jetpack Compose에서 리소스 관리와 side effect 처리를 위해 제공되는 API이다
주로 컴포저블이 컴포지션에 추가되거나 제거될 때 수행해야 하는 작업을 정의하는 데 사용된다
컴포저블이 화면에 나타날 때 side effect를 시작하고, 화면에서 제거될 때 정리 작업을 수행되며
DisposableEffect는 블록 내에 여러 가지 작업이 있을 때 onDispose 절을 코드 블록의 마지막에 위치시켜야 한다
끝나는 지점을 명확히 인식할 수 있도록 하기 위함이며 그러지 않으면 IDE에 빌드 시간 오류가 발생할 수 있다
https://developer.android.com/develop/ui/compose/side-effects#disposableeffect
Compose의 부수 효과 | Jetpack Compose | Android Developers
이 페이지는 Cloud Translation API를 통해 번역되었습니다. Compose의 부수 효과 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 부수 효과는 구성 가능한 함수의 범
developer.android.com
2. 사용 방법
@Composable
fun testDisposableEffect() {
DisposableEffect(Unit) {
println("Effect started")
onDispose {
println("Effect disposed")
}
}
}
@Composable
fun MyComposable(data: String) {
DisposableEffect(data) {
// data값이 변경될 때마다 이 블록이 실행됩니다.
println("DisposableEffect: $data")
onDispose {
// 기존의 효과를 정리하는 블록
println("Dispose: $data")
}
}
Text(text = data)
}
@Composable
fun MyScreen() {
Box(
modifier = Modifier
.size(100.dp)
.myComposableEffect()
.background(Color.Red)
)
}
fun Modifier.myComposableEffect() = composed {
DisposableEffect(Unit) {
println("Effect started")
onDispose {
println("Effect disposed")
}
}
}
'Android > Jetpack Compose' 카테고리의 다른 글
[Jetpack Compose] AnimatedVisibility (0) | 2024.08.19 |
---|---|
[Jetpack Compose] ConstraintLayout (0) | 2024.08.03 |
[Jetpack Compose] Modifier (0) | 2024.01.07 |
[Jetpack Compose] Slot API (0) | 2024.01.06 |
[Jetpack Compose] CompositionLocal (0) | 2024.01.05 |