Ответ
remember сохраняет значение в композиции и возвращает его при последующих рекомпозициях. Если входные ключи (keys) изменились, значение пересчитывается.
var counter by remember { mutableStateOf(0) } // Сохраняется между рекомпозициями
Ключевые моменты:
- Значение сохраняется только в пределах текущей композиции
- При изменении ключей (переданных в
remember(key1, key2)) значение пересоздается - Под капотом использует механизм slot table Compose
Пример с ключами:
val result = remember(query) {
heavyCalculation(query) // Пересчитается только при изменении query
}