Android/Compose

[Android Compose] Composable의 생명주기

참깨빵위에참깨빵_ 2023. 4. 21. 22:53
728x90
반응형

Compose에도 생명주기란 개념이 존재한다. 이번 포스팅에선 Compose의 생명주기가 어떤 것인지 확인한다.

먼저 공식문서부터 확인한다.

 

https://developer.android.com/jetpack/compose/lifecycle?hl=ko 

 

컴포저블 수명 주기  |  Jetpack Compose  |  Android Developers

컴포저블 수명 주기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 페이지에서는 컴포저블의 수명 주기에 관해 알아보며 Compose에서 컴포저블에 재구성

developer.android.com

(중략)...컴포저블의 생명주기는 컴포지션 시작, 0회 이상 재구성, 컴포지션 종료 이벤트로 정의된다

컴포저블은 컴포지션을 시작하고 0회 이상 재구성되고 컴포지션을 종료한다. 리컴포지션은 일반적으로 State<T> 객체가 바뀌면 트리거된다. Compose는 이런 객체를 추적하고 컴포지션에서 특정 State<T>를 읽는 모든 컴포저블 및 호출하는 컴포저블 중 건너뛸 수 없는 컴포저블을 실행한다. 컴포저블이 여러 번 호출되면 컴포지션에 여러 인스턴스가 배치된다. 컴포지션의 각 호출에는 자체 수명주기가 있다
@Composable
fun MyComposable() {
    Column {
        Text("Hello")
        Text("World")
    }
}

컴포지션 내 MyComposable의 표현. 컴포저블이 여러 번 호출되면 컴포지션에 여러 인스턴스가 배치된다. 색이 다른 요소는 요소가 별도의 인스턴스임을 나타낸다

 

컴포즈의 생명주기는 3개 뿐이어서 액티비티, 프래그먼트에 비해 상대적으로 간단하다.

정리하면 컴포즈의 생명주기는 아래와 같다.

 

  • 컴포지션 진입
  • 리컴포지션
  • 컴포지션을 떠남
반응형