Middle+
Kaip sumažinti rekombinacijų skaičių programoje, be šalutinių efektų naudojimo?
sobes.tech AI
Atsakymas iš AI
Naudokite remember.
Taikykite stabilius duomenų tipus (@Stable arba @Immutable).
Deleguokite skaičiavimus:
// Venkite skaičiavimų kiekvienos rekonstrukcijos metu
val myExpensiveValue by remember {
derivedStateOf {
calculateExpensiveValue()
}
}
Naudokite lambda funkcijas, kurios minimaliai apima kintamuosius:
// Lambda bus perkurta tik pakeitus count
Button(onClick = { onCountChanged(count + 1) }) {
Text("Padidinti")
}
Taikyti Composable funkcijas su mažiausiai parametrų.
Jei norite perkelti Compose medį be jo rekonstrukcijos, naudokite @MovableContentOf.
Naudokite sudėtinius raktus (key) sąrašams, jei reikia tikslesnio elementų atitikimo keičiantis.
Venkite ne-stabilių funkcijų kvietimo viduje Composable.