Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Dev6
- swift map
- android compose
- Rxjava 안드로이드
- Firebase
- RxJava
- 일상
- 코딩테스트
- react
- Kotiln
- 잡담
- 안드로이드 컴포즈
- 이펙티브코틀린
- 개발자
- 이펙티브 코틀린
- 알고리즘
- 코틀린
- 안드로이드 개발자
- 코루틴
- RxKotiln
- Java
- 안드로이드 다이얼로그
- Swift 문법
- Flutter
- 프로그래머스
- android
- MVVM
- 반응형 프로그래밍
- 안드로이드
- Go언어
Archives
- Today
- Total
최데브는 오늘도 프로그래밍을 한다.
컴포즈의 Side-Effect 형제들에 대해서 알아보자 - 2 본문
반응형
2024.04.21 - [Android/Android Compose] - 컴포즈의 Side-Effect 형제들에 대해서 알아보자 - 1
이전 글에 이어서 알아보자.
이번에는
- DisposableEffect
- SideEffect
이렇게 알아볼 예정이다.
DisposableEffect
는 앞글에서 봤던 LaunchedEffect 와 비슷하지만 취소됐을때 onDispose 가 호출된다.
취소될때의 동작을 추가할 수 있는것이다.
아래 코드처럼 작성할 수 있다.
DisposableEffect(menuState) {
when (menuState) {
BottomDialogMenu.LinkAdd -> {
mainViewModel.updateScreenState(MainScreenState.LINKADD.state)
}
BottomDialogMenu.GroupAdd -> {
mainViewModel.updateScreenState(MainScreenState.GROUPADD.state)
}
else -> {
}
}
onDispose {
mainViewModel.updateMenuState(BottomDialogMenu.None)
}
}
SideEffect
Compose에서 관리하는 객체가 아닌 객체에 compose의 상태를 공유하기 위한 용도로 사용되며
Composition이 완료되면 진행할 동작을 예약할 때 사용한다.
이 함수는 recomposition이 일어날 때마다 호출된다.
따라서 효율적인 사용을 위해 특정 시점에 사용할 때는 LaunchedEffect를, 자원 해제가 필요한 경우에는 DisposableEffect를 사용하는 것이 좋다.
val callback = remember { ... }
SideEffect {
callback.isEnable = isEnable
}
이렇게 쓸 수 있다.
반응형
'Android > Android Compose' 카테고리의 다른 글
컴포즈의 Side-Effect 형제들에 대해서 알아보자 - 1 (0) | 2024.04.21 |
---|---|
Jetpack Compose CompositionLocal 에 대해 알아봅시다 (0) | 2024.03.31 |
스와이프 삭제 구현 (0) | 2024.03.10 |
[안드로이드 컴포즈] 스와이프 삭제 구현 (1) | 2024.01.14 |
안드로이드 컴포즈 dialog 커스텀 하기 (0) | 2023.12.20 |
Jetpack Compose 에서 Lifecycle 관리하기 (0) | 2023.05.11 |
안드로이드 컴포즈 1주차 정리 (0) | 2021.11.07 |
안드로이드 컴포즈 - GDG DevFest2021 참여하다. (0) | 2021.11.02 |
Comments