Compose - Recomposition

FLUORITE·2025년 1월 17일

안드로이드

목록 보기
3/32

초기 컴포지션 - UI를 그리기 위해 호출한 컴포저블을 추적
리컴포지션 - 상태가 바뀌었을 때 예약되며(0회 이상) 변경 점을 반영하려 컴포지션을 업데이트 함 (수정하는 유일한 방법)

state가 변경되면 리컴포지션이 트리거 됨.

state를 읽는 컴포저블과, 여기에서 호출되는 컴포저블이 대상이 됨.

모든 입력이 안정적이고 변경되지 않았으면 건너뛸 수 있음

안정적인 타입은 아래를 지켜야 함.
• 두 인스턴스 equals 결과가 영원히 같은 경우.
• 공개 프로퍼티가 변경되면 콤포지션에 알려야 함.
• 모든 공개 프로퍼티는 안정적이어야 함.

@Stable이 표기되지 않아도 Compose 컴파일러가 안정적이라고 간주하는 공통 타입들
• 모든 프리미티브 타입: Boolean, Int, Long, Float 등
• 문자열
• 모든 함수 타입 (람다)
안정적이다고 추론 할 수 없는 경우 @Stable을 표기해야 함

MutableState는 안정적.
State의 value 프로퍼티 값 변경이 알려지기 때문.

리컴포지션에서 다른 컴포지션을 호출하는 경우 컴포저블들이 호출되는지 여부를 체크해 두 컴포지션에서 모두 호출되고 입력이 바뀌지 않은 컴포저블은 재구성하지 않음.

-> 키를 설정해 해결

랜더링 단계

무언가 바뀌면 각 단계에서 잡아 냄

profile
모두 이루어져라

0개의 댓글