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

312
Visualizações
¿Por qué los fragmentos en React 16 son mejores que los divs de contenedores?

En React 16.2, se ha agregado soporte mejorado para Fragments . Se puede encontrar más información en la publicación del blog de React aquí.

Todos estamos familiarizados con el siguiente código:

 render() { return ( // Extraneous div element :( <div> Some text. <h2>A heading</h2> More text. <h2>Another heading</h2> Even more text. </div> ); }

Sí, necesitamos un contenedor div, pero no es gran cosa.

En React 16.2, podemos hacer esto para evitar el contenedor div circundante:

 render() { return ( <Fragment> Some text. <h2>A heading</h2> More text. <h2>Another heading</h2> Even more text. </Fragment> ); }

En cualquier caso, aún necesitamos un elemento contenedor que rodee los elementos internos.

Mi pregunta es, ¿por qué es preferible usar un Fragment ? ¿Ayuda con el rendimiento? Si es así, ¿por qué? Me encantaría alguna idea.

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

0

  1. Es un poco más rápido y tiene menos uso de memoria (no es necesario crear un nodo DOM adicional). Esto solo tiene un beneficio real en árboles muy grandes y/o profundos, pero el rendimiento de la aplicación a menudo se ve afectado por miles de cortes. Este es un corte menos.
  2. Algunos mecanismos de CSS, como Flexbox y CSS Grid, tienen una relación padre-hijo especial, y agregar div s en el medio dificulta mantener el diseño deseado mientras se extraen los componentes lógicos.
  3. El inspector DOM está menos abarrotado. :-)

Puede encontrar las descripciones de algunos otros casos de uso en este problema de React: Agregar API de fragmentos para permitir la devolución de múltiples componentes del procesamiento

over 4 years ago · Santiago Trujillo Relatório

0

Además de todas las respuestas anteriores, hay una ventaja más: la legibilidad del código , el componente Fragment admite una forma de azúcar sintáctica, <> . Por lo tanto, el código en su pregunta se puede escribir más fácilmente como:

 render() { return ( <> Some text. <h2>A heading</h2> More text. <h2>Another heading</h2> Even more text. </> ); }

Según los documentos ,

En React, esto se convierte en un <React.Fragment/> , como en el ejemplo de la sección anterior. (Los marcos que no son React que usan JSX pueden compilarse en algo diferente).

Sin desorden, ¿verdad?

Tenga en cuenta que aún necesita usar la sintaxis <Fragment> si necesita proporcionar la key para el fragmento.

over 4 years ago · Santiago Trujillo Relatório

0

  • Funciones añadidas que antes no eran posibles con JSX
  • Mejor marcado jsx semántico. Los elementos de envoltura se utilizan cuando se necesitan, no porque estén obligados a hacerlo.
  • Menos marcado dom general (mayor rendimiento de procesamiento y menos sobrecarga de memoria)

Es tan simple como cuando no necesita un elemento contenedor, no está obligado a usar uno. Tener menos elementos es excelente, pero creo que el mayor beneficio es poder representar elementos en jsx que antes no eran posibles y agregar un mejor significado semántico a los elementos de envoltura porque ahora son opcionales.

Esto no era posible antes:

 <select> {this.renderOptions()} </select>

Mirando lo siguiente en React 15, no puede saber si el elemento contenedor es necesario o no:

 <span> <h1>Hello</h1> {this.getContent()} </span>
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