기록
MutableState 리컴포즈 최적화 본문
반응형
MutableState 값을 그대로 다른 컴포저블로 보내고, 이걸 또 다른 컴포저블로 보내고, 직접 .value 참조하여 값을 변경하면 위에서부터 아래까지 전부 리컴포즈가 일어난다고 한다.
val dialogDescription = remember { mutableStateOf("") }
...
PostCard(
dialogDescription,
)
...
PostCard(
dialogDescription: MutableState<String>,
) {
dialogDescription.value = "텍스트"
}
뭐 이런 형태에 대하여... 실제 코드는 depth도 더 깊고 변경하는 곳도 더 많았다.
이러한 경우에서는 해당 값에 대한 람다를 만들어서 아래로 람다함수만 보내 변경하는 방식이 많이 쓰인다고 한다.
var dialogDescription by remember { mutableStateOf("") }
val updateDialogDescription: (String) -> Unit = { dialogDescription = it }
...
PostCard(
updateDialogDescription,
)
...
PostCard(
updateDialogDescription: (String) -> Unit,
) {
updateDialogDescription("텍스트")
}
이런식으로!!
https://developer.android.com/jetpack/compose/performance/bestpractices?hl=ko#defer-reads
권장사항 준수 | Jetpack Compose | Android Developers
권장사항 준수 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 발생할 수 있는 일반적인 Compose 실수가 몇 가지 있습니다. 이러한 실수로 인해 코드가 잘 실행
developer.android.com
위 링크의 읽기 최대한 연기가 관련 섹션이라고 하니 읽어보자.
반응형
'[Study] > Android' 카테고리의 다른 글
Sample App 다운받기 (0) | 2023.11.17 |
---|---|
Android Compose Dialog (0) | 2023.11.16 |
2. findViewById 대신 DataBinding 사용하기 (0) | 2023.04.27 |
1. 기초적인 RecyclerView부터 시작하기 (0) | 2023.04.27 |
[Android] Hilt의 @Bind로 유지보수 쉽게 하기 (0) | 2023.01.12 |