Jetpack Compose Lifecycle

MJ·2023년 7월 16일
0

Jetpack Compose Basic

목록 보기
4/4

Composable

  • 컴포저블 함수에서 사용되는 어노테이션
  • Jetpack Compose를 구성하는 함수의 이름
  • 선언형 UI의 최소 단위

Composition

  • 컴포저블 함수가 화면에 그려지기 위한 전체의 과정
  • 제일 처음 그려지는 1회의 과정

Recomposition

  • 컴포지션의 내용이 수정되어 화면의 내용을 고치는데 그 동작을 말함

Lifecycle

  • compose는 각 인스턴스가 각자의 생명주기를 가진다

호출 사이트를 이용한 구분

@Composable
fun LoginScreen(showError: Boolean) {
    if (showError) {
        LoginError()
    }
    LoginInput() // This call site affects where LoginInput is placed in Composition
}

@Composable
fun LoginInput() { /* ... */ }

  • showError이 true로 변경되어 리컴포지션이 발생해도 LoginInput이 새로운 인스턴스로 생성되지않는다

실행 순서를 통한 구분

@Composable
fun MoviesScreen(movies: List<Movie>) {
    Column {
        for (movie in movies) {
            // MovieOverview composables are placed in Composition given its
            // index position in the for loop
            MovieOverview(movie)
        }
    }
}

  • 순서를 통해 데이터를 추가하는 경우 인스턴스가 순서에 맞게 생성된다
  • 중간에 내용이 추가되거나 제일 처음에 추가하는 경우에는 모든 인스턴스가 리컴포지션됨!

키 값을 이용한 구분

  • 식별자를 이용해 구분한다면 리스트에 제일 처음에 데이터가 추가되어도 전체적인 Recomposition을 하지 않는다
profile
느긋하게 살자!

0개의 댓글