Back to questions
Junior — Middle
74
Какова роль аннотации @Stable в Jetpack Compose и зачем она используется?
Answer from AI
sobes.tech AI
Аннотация @Stable в Jetpack Compose используется для обозначения, что объект или класс является стабильным с точки зрения системы компоновки. Это значит, что состояние объекта не изменится неожиданным образом, и его свойства не будут меняться без уведомления.
Роль @Stable:
- Помогает Compose оптимизировать перерисовки, так как система понимает, что объект не изменится, если ссылка на него не поменялась.
- Уменьшает количество ненужных recomposition, повышая производительность UI.
Используется, когда вы создаёте собственные классы или типы данных, которые хотите использовать в Compose и гарантировать их стабильность. Если класс помечен @Stable, Compose может не отслеживать внутренние изменения, а полагаться на ссылочную целостность.
Пример:
@Stable
class User(val name: String, val age: Int)
Здесь Compose будет считать объекты User стабильными, если ссылка не меняется, и не будет перерисовывать компоненты без необходимости.