[Compose Side Effect] LaunchedEffect에서 한 번만 실행되어야 하는 동작 처리하기

2021. 12. 12. 15:02· Android Jetpack Compose/Compose Side Effect
목차
  1. LaunchedEffect에서 한 번만 실행되어야 하는 동작 처리하기
  2. LaunchedEffect에서 한 번만 실행되어야 하는데 동작이 길 때 처리하기
반응형

LaunchedEffect에서 한 번만 실행되어야 하는 동작 처리하기

LaunchedEffect는 key값이 바뀌면 블록내의 동작을 취소한 후 다시 실행한다. 따라서 한 번만 수행해야하는 작업들은 LaunchedEffect에 true나 Unit을 넘겨주는 방향으로 실행해야 한다.

@Composable
fun KotlinWorldScreen(oneTimeEffect: () -> String) {
    LaunchedEffect(true) { 
        oneTimeEffect()
    }
}

이렇게 하면 oneTimeEffect()는 한 번만 수행된다.

 

LaunchedEffect에서 한 번만 실행되어야 하는데 동작이 길 때 처리하기

LaunchedEffect에서 긴 동작의 람다식을 처리해야 할 때는  rememberUpdatedState를 이용해 lambda를 기억해야 한다.

@Composable
fun KotlinWorldScreen(longTimeJob: suspend () -> String) {
    val rememberLongTimeJob by rememberUpdatedState(longTimeJob)

    LaunchedEffect(true) { 
        println(rememberLongTimeJob())
    }
}

 

반응형
저작자표시 비영리 변경금지
  1. LaunchedEffect에서 한 번만 실행되어야 하는 동작 처리하기
  2. LaunchedEffect에서 한 번만 실행되어야 하는데 동작이 길 때 처리하기


 

Kotlin, Android, Spring 사용자 오픈 카톡

오셔서 궁금한 점을 질문해보세요!
비밀번호 : kotlin22

open.kakao.com

'Android Jetpack Compose/Compose Side Effect' 카테고리의 다른 글
  • [Compose SideEffect] SideEffect를 이용해 부수효과 처리하기
  • [Compose Side Effect] Disposable Effect 란 무엇인가?
  • [Compose Side Effect] rememberCoroutineScope을 이용해 Composable의 생명주기에 맞춰 코루틴 수행하기
  • [Compose Side Effect] 1. LaunchedEffect 를 이용한 suspend fun 실행
Dev.Cho
Dev.Cho
'조세영의 Kotlin World'는 Kotlin를 전문적으로 다루는 개인 기술 블로그입니다. Kotlin 세계에 대한 양질의 자료를 제공하며 Kotlin, Android, Spring, CI, CD 분야에 대해 다룹니다.
Dev.Cho
조세영의 Kotlin World
Dev.Cho
전체
오늘
어제

블로그 메뉴

  • LinkedIn
  • GitHub
  • 분류 전체보기 (491)
    • Kotlin (104)
      • Class and Interface (19)
      • Variable and Function (8)
      • Modifier (5)
      • Collection (14)
      • Time (8)
      • 동시성 제어 (7)
      • Reactive Programming (2)
      • Paradigm (2)
      • Kotlin 자료구조 (15)
      • Design Patterns (11)
      • Algorithm (3)
      • Exception (1)
      • 기타 (9)
      • Update History (0)
    • Coroutines (32)
      • Coroutine Basics (18)
      • Flow (9)
      • CoroutineScope (3)
      • Debugging (2)
    • Testing Codes (28)
      • Test 기본 (3)
      • JUnit5 (9)
      • MockK (6)
      • Testing Coroutines (1)
      • Testing Android (8)
      • Test 기타 (1)
    • Spring (50)
      • Dependency Injection (18)
      • Settings (5)
      • REST API (0)
      • DevTools (1)
      • MVC (18)
      • Error (2)
      • MongoDB (2)
      • Database (4)
    • Android (39)
      • Architecture (2)
      • Component (5)
      • Manifest (1)
      • Lifecycle (2)
      • Dependency Injection (17)
      • Resource (1)
      • Storage (1)
      • Security and Optimization (1)
      • WebView (2)
      • Error (6)
    • Android Jetpack Compose (33)
      • Compose (6)
      • Compose Modifier (13)
      • Compose Resource (4)
      • Compose State (4)
      • Compose Side Effect (6)
    • Android Jetpack Compose UI (48)
      • Compose Layout (14)
      • Compose Text (10)
      • Compose Button (5)
      • Compose Dialog (2)
      • Compose TextField (0)
      • Compose UIs (4)
      • Compose Animation (1)
      • Compose Canvas (12)
    • Android Jetpack (10)
      • Datastore (5)
      • ViewModel (4)
      • LiveData (1)
      • Paging (0)
    • KMP (5)
    • Programming (4)
    • Machine (9)
      • JVM (7)
      • Linux (2)
    • CI, CD (74)
      • Gradle (12)
      • Groovy Gradle (5)
      • Git (25)
      • Git Remote (5)
      • GitHub (5)
      • GitHub Actions (21)
    • Network (33)
      • GraphQL (12)
      • HTTP (11)
      • Basic (9)
    • 오픈소스 (3)
    • Database (3)
      • MongoDB (3)
    • IDE (6)
      • Android Studio (2)
      • Intellij (4)
    • Firebase (1)
    • Javascript (9)

공지사항

  • 코틀린 코루틴 완전 정복 강의 in 인프런 오픈
  • 코틀린 코루틴의 정석 책 출간
  • Kotlin Coroutines 공식 기술 문서 한국어 번⋯
  • GitHub에서 조세영의 Kotlin World를 Foll⋯
  • 문의&제안

인기 글

태그

  • Spring boot
  • Android Compose
  • dagger2
  • Spring
  • 안드로이드
  • junit5
  • 코틀린
  • Android
  • Dependency Injection
  • 코루틴
  • Kotlin
  • 유닛 테스팅
  • 스프링
  • Coroutine
  • github actions
  • GraphQL
  • HTTP
  • github
  • Jetpack Compose
  • 의존성 주입
  • kotlin spring
  • flow
  • gradle
  • compose
  • junit
  • Unit Testing
  • junit4
  • GIT
  • java
  • Class

최근 글

반응형
hELLO · Designed By 정상우.v4.3.0
Dev.Cho
[Compose Side Effect] LaunchedEffect에서 한 번만 실행되어야 하는 동작 처리하기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.