Recomposition
- 입력 매개변수 또는 외부 상태의 변경에 따라 함수를 재구성하고 호출 하는 것. compose의 기본 개념
Stable parameters
String
,Int
,Float
,ImmutableList
Unstable parameters
List
,Map
,Set
,var
(Data classes
)
Avoiding Recomposition
- @Stable 사용
- 값이 관찰 가능해지며, 값이 변경되면 알림이 전송됨
@Stable data class Contact(var flag: MutableState<Boolean> = mutableStateOf(false))
→ flag변수의 값이 변경될 때만 recomposition
- 값이 관찰 가능해지며, 값이 변경되면 알림이 전송됨
- @Immutable 사용
- 값이 절대 변경되지 않을 것이라고 약속하는 annotation
- 항목이 추가되거나 삭제되더라도 recomposition발생하지 않음
@Immutable data class Contact(var list: ArrayList<String>)
Uploaded by N2T