Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

129
Visualizações
En JetpackCompose vemos que todos los componibles integrados tienen entradas planas, ¿tiene un propósito? o envolver las entradas con la clase de datos tiene el mismo rendimiento?

En Jetpack Compose vemos que todos los componentes integrados tienen entradas aplanadas, ¿es intencionado? ¿O envolver demasiadas entradas con la clase de datos (que es una práctica buena y limpia) tiene el mismo rendimiento?

Considere esta muestra

 data class SettingsItemEntity( val title: String, val description: String? = null, @DrawableRes val imageResId: Int? = null, val isChecked: Boolean? = null, val showDivider: Boolean = true, val onItemClicked: () -> Unit = {}, val onCheckedChange: (isChecked: Boolean) -> Unit = {}, val buttonLabel: String? = null, val onButtonClicked: () -> Unit = {}, ) @Composable fun SettingsItem( entity: SettingsItemEntity, modifier: Modifier = Modifier ) { ... }

¿Sería mejor enviar entradas como clase de datos o entradas planas en rendimiento (recomposición)? O tiene el mismo resultado?

De otra manera, cuando enviamos una clase de datos a la función componible, y solo cambiamos un miembro de ella, ¿provoca que toda la función se recomponga? O en cuanto a la recomposición, ¿tiene el mismo rendimiento que cuando se usan entradas planas?

Gracias de antemano por su ayuda.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Creo que el impacto en el rendimiento es mínimo al elegir uno u otro. Creo que los desarrolladores de Compose simplemente no pensaron que las clases de datos eran la mejor ruta como parámetro, y estoy de acuerdo.

No veo cómo esto:

 data class SettingsItemEntity( val title: String, val description: String? = null, @DrawableRes val imageResId: Int? = null, val isChecked: Boolean? = null, val showDivider: Boolean = true, val onItemClicked: () -> Unit = {}, val onCheckedChange: (isChecked: Boolean) -> Unit = {}, val buttonLabel: String? = null, val onButtonClicked: () -> Unit = {}, ) @Composable fun SettingsItem( entity: SettingsItemEntity, modifier: Modifier = Modifier ) { ... }

es mejor que esto:

 @Composable fun SettingsItem( title: String, description: String? = null, @DrawableRes imageResId: Int? = null, isChecked: Boolean? = null, showDivider: Boolean = true, onItemClicked: () -> Unit = {}, onCheckedChange: (isChecked: Boolean) -> Unit = {}, buttonLabel: String? = null, onButtonClicked: () -> Unit = {}, modifier: Modifier = Modifier ) { ... }

Tener una clase de datos involucrada en cada interacción con una función de composición con una gran cantidad de argumentos solo agrega una complejidad innecesaria a su código. Agrega más obstáculos para leer la documentación, llamar a la función y comprender en general el código base, por el único beneficio de tener menos código dentro del paréntesis de la declaración de la función (pero más código en el resto).

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda