viewModel() 함수를 들여다보다가 CompostionLocal이 뭔지 도통 모르겠어서 문서를 따로 작성하였습니다.

https://developer.android.com/develop/ui/compose/compositionlocal?hl=ko

https://charlezz.com/?p=46403

개요

img1.daumcdn.png

img1.daumcdn.png

Composition 단계에서 컴포저블 함수를 실행하고 위와 같은 UI트리가 만들어짐

www.charlezz.com-compose-compositionlocal-compositionlocal1-1-1024x495.png

이렇게 트리로 구성된 컴포저블 함수에서, 일반적으로 상태(State)는 UI트리의 최상위 컴포저블에서 선언되어(상태 호이스팅)

매개변수 형태로 하위 컴포저블에게 전해지면서 UI트리를 통해 아래로 흐른다.

그러나 트리의 깊이가 깊어질수록 이 과정은 굉장히 번거로워질 수 있다.

이때, CompositionLocal을 사용하면 컴포지선 트리에서 특정 노드부터의 서버 트리 범위에 접근할 수 있다.

CompositionLocal