"์ด ์ปดํฌ์ ๋ธ์ count๋ ๊ด๋ จ ์์ด!"
Compose๊ฐ ์ด๋ ๊ฒ ํ๋จํ๋ ๊ธฐ์ค์ โ์ปดํฌ์ ๋ธ์ด ํด๋น ๊ฐ์ ์ฝ์๋๊ฐ?โ์
๋๋ค.
Compose๋ ์ปดํฌ์ ๋ธ ํจ์๊ฐ ์คํ๋๋ ๋์ ์ด๋ค State
๊ฐ์ ์ฝ์๋์ง ์๋์ผ๋ก ์ถ์ ํฉ๋๋ค.
์ด ์ ๋ณด๋ฅผ ๋ฐํ์ผ๋ก, ๋์ค์ ํด๋น State
๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๊ทธ ๊ฐ์ ์ฝ์๋ ์ปดํฌ์ ๋ธ๋ง ๋ค์ ์ฌ๊ตฌ์ฑํฉ๋๋ค.
@Composable
fun Example() {
val count by remember { mutableStateOf(0) }
Text("Hello") // count๋ฅผ ์ ์ โ recomposition ๋์ โ
Text("Count: $count") // count๋ฅผ ์ฝ์ โ recomposition ๋์ โ
}
์ ์ฝ๋์์ Text("Count: $count")
๋ count
๊ฐ์ ์ฝ๊ณ ์์ผ๋ฏ๋ก,
count
๊ฐ ๋ณ๊ฒฝ๋๋ฉด ์ด Text
๋ง ๋ค์ ์ฌ๊ตฌ์ฑ๋ฉ๋๋ค.
๋ฐ๋๋ก Text("Hello")
๋ count
์ ๊ด๋ จ์ด ์๊ธฐ ๋๋ฌธ์ ์ฌ๊ตฌ์ฑ๋์ง ์์ฃ .
@Composable
fun Parent() {
val count by remember { mutableStateOf(0) }
Column {
Child1() // count๋ฅผ ์ ์ฝ์ โ ์ฌ๊ตฌ์ฑ โ
Child2(count) // count๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ์ ๋ฌ โ ๋ด๋ถ์์ ์ฝ์ผ๋ฉด ์ฌ๊ตฌ์ฑ โ
}
}
@Composable
fun Child1() {
Text("Static text")
}
@Composable
fun Child2(value: Int) {
Text("Value: $value")
}
์ฌ๊ธฐ์๋ ํต์ฌ์ ์ค์ ๋ก ์ฝ์๋์ง ์ฌ๋ถ์ ๋๋ค.
Child1()
์ count
์ ๋ฌด๊ดํ๋ฏ๋ก ์ฌ๊ตฌ์ฑ๋์ง ์์ต๋๋ค.Child2()
๋ count
๋ฅผ ์ ๋ฌ๋ฐ๊ณ ๋ด๋ถ์์ ์ฌ์ฉํ๊ณ ์์ผ๋ฏ๋ก, count
๊ฐ ๋ฐ๋ ๋ ์ฌ๊ตฌ์ฑ๋ฉ๋๋ค.์กฐ๊ฑด | ์ฌ๊ตฌ์ฑ ์ฌ๋ถ |
---|---|
๊ฐ์ ์ฝ์ง ์์ | โ ์ฌ๊ตฌ์ฑ๋์ง ์์ |
๊ฐ์ ์ฝ์ | โ ์ฌ๊ตฌ์ฑ๋จ |
๊ฐ์ ํ๋ผ๋ฏธํฐ๋ก๋ง ๋ฐ๊ณ ์ฌ์ฉํ์ง ์์ | โ ์ฌ๊ตฌ์ฑ๋์ง ์์ |
๊ฐ์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ๊ณ ๋ด๋ถ์์ ์ฝ์ | โ ์ฌ๊ตฌ์ฑ๋จ |
Compose๋ composition phase์์ ์ด๋ค State
๊ฐ ์ฌ์ฉ๋์๋์ง ์์ฃผ ์ ๋ฐํ๊ฒ ์ถ์ ํฉ๋๋ค.
์ด๋ฌํ ๋ฉ์ปค๋์ฆ ๋๋ถ์, UI๋ ํญ์ ์ต์ ์ํ๋ฅผ ์ ์งํ๋ฉด์๋ ๋ถํ์ํ ์์
์ ์ค์ด๊ณ , ์ฑ๋ฅ์ ์ต์ ํํ ์ ์์ต๋๋ค.
Composition phase์ ๋ํด์๋ ๋ค์ ๊ธ์์ ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค!