🤖 Compose

[Compose] compositionLocal

콩드로이드 2025. 1. 21. 16:54

CompositionLocal을 통해 전역 상태를 선언, 이를 CompositionLocalProvider를 사용해 하위 Composable에 전달할 수 있다

특정 값을 하위 Composable에주입하는 데 유용함

val LocalExampleValue = compositionLocalOf { "기본 값" }

@Composable
fun ParentComposable() {
    CompositionLocalProvider(LocalExampleValue provides "제공된 값") {
        ChildComposable()
    }
}

@Composable
fun ChildComposable() {
    val value = LocalExampleValue.current
    Text(text = value) // "제공된 값"이 표시됨..! 
    
}

 

제공된 값이 표시되는 이유는 current에서 가장 가까운 곳에서 설정한 값을 가져오기 때문에 !

 

전역으로 설정하기엔 좋을 거 같은데 추적이 힘들 거 같다 

 
찾아보니, CompositionLocalProvider는 전역 상태 공유, 의존성 주입, UI 컨텍스트 제공 등의 상황에서 주로 사용된다고 한다 

 

'🤖 Compose' 카테고리의 다른 글

[Compose] viewModel , LiveData  (0) 2025.01.21
[Compose] Compose 주의점  (0) 2025.01.17
[Compose] SideEffect  (0) 2025.01.16
[Compose] Animation  (0) 2025.01.08
[Compose] State, StateHoisting  (0) 2025.01.07