Is compose smart enough to only re-compose UI elements that use fields from a data class that are partially updated? In the example below, if I change the username in the
TextField
does compose only update
NameUI
or does it also re-compose
AgeUI
since state updated and it includes the value for
AgeUI
.
private data class State(
var name: String = "",
var age: Int = 0,
)
@Composable
fun UI() {
val state = remember { State() }
NameUI(name = state.name, onNameChange = { state.name = it })
AgeUI(age = state.age, onAgeChange = { state.age = it })
}
@Composable
private fun NameUI(name: String, onNameChange: (String) -> Unit) {
TextField(value = name, onValueChange = onNameChange)
}
@Composable
private fun AgeUI(age: Int, onAgeChange: (Int) -> Unit) {
TextField(value = age.toString(), onValueChange = { onAgeChange(it.toInt()) })
}