30. 컨트롤 플로우 그룹 생성

  1. 교체 가능한 그룹 (Replaceable Groups)

  2. 이동 가능한 그룹 (Movable Groups)

    @Composable
    fun TalksScreen(talks: List<Talk>) {
    		Column {
    				for (talk in talks) {
    						key(talk.id) {  // Unique key
    								Talk(talk)
    						}
    				}
    		}
    }
    
  3. 재시작 가능한 그룹 (Restartable Groups)

    @Composable
    fun A(x: Int) {
    		f(x)
    }
    
    @Composable
    fun A(x: Int, $composer: Composer<*>, $changed: Int) {
    		$composer.startRestartGroup()
    		// ..
    		f(x)
    		$composer.endRestartGroup()?.updateScope { next ->
    				A(x, next, $changed or 0b1)
    		}
    }
    

<aside> 💡

Compose Compiler는 Composable 함수 본문에 “그룹”을 삽입해 특정 상황에서 어떻게 Composable들이 동작하는지 Composition에 알린다.

</aside>


31. Klib과 미끼 생성


3장. Compose Runtime

01. 슬롯 테이블 및 변경 목록

슬롯 테이블