상태를 호이스팅할 대상 위치  |  Jetpack Compose  |  Android Developers

안드로이드 개발 (9) Compose 상태 관리

[Android Compose State] State Hoisting(상태 호이스팅) 패턴이란 무엇인가?

Jetpack Compose basics – State Hoisting(상태 끌어올리기) | 찰스의 안드로이드

상태 끌어올리기


상태 끌어올리기는, UI를 Stateless 로 만들기 위해 State 를 계층 위로 옮기는 패턴을 말한다.

이 패턴을 컴포저블에 사용할때 다음과 같은 파라미터를 주로 사용한다.

TextFieldWithTitle 컴포즈 (Stateless)

@Composable
fun KotlinWorldScreen() {
		var text by rememberSaveable{ mutableStateOf("") }
		TextFieldWithTitle(title = "title", text = text, onTextValueChange = { text = it })
}

**// 자신의 상태를 외부에 맡김 (state less)**
@Composable
fun TextFieldWithTitle(
			title: String, 
			text: String, 
			onTextValueChange: (String) -> Unit
) {
		Column(modifier = Modifier.padding(16.dp)) {
				Text(
						text = title,
						modifier = Modifier.padding(bottom = 12.dp),
						style = MatherialTheme.typography.h6
				)
				OutlinedTextField(
						value = text,
						onValueChange = onTextValueChange
				)
		}
}