Sobes.tech
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.