기록

MutableState 리컴포즈 최적화 본문

[Study]/Android

MutableState 리컴포즈 최적화

Dannnnnn 2023. 11. 15. 20:08
반응형

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

위 링크의 읽기 최대한 연기 관련 섹션이라고 하니 읽어보자.

반응형