Diferencia entre elemento y componente en React

Autor: | Última modificación: 24 de agosto de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post:

¿Conoces la diferencia entre elemento y componente en React? React es una librería JavaScript que nos permite crear interfaces de usuario para el desarrollo de aplicaciones de una sola página o SPA. Para ello, React utiliza una extensión JavaScript que le permite acceder a una sintaxis similar a HTML: JSX. Dentro de este lenguaje, existen dos objetos principales: los elementos y los componentes.

En este post, te enseñaremos cuál es la diferencia entre elemento y componente en React.

¿Cuál es la diferencia entre elemento y componente en React?

Antes de hablar de la diferencia entre elemento y componente en React, hagamos un repaso sobre qué es cada uno de estos objetos. Un elemento en React no es más que un objeto que creamos con el comando react.createElement. Este objeto tiene distintos atributos, también conocidos como propiedades. Dentro de estos atributos encontrarás un atributo type y un objeto props. Para conocer más sobre este tema, te invitamos a leer nuestro post sobre los atributos de un elemento React.

Entonces, un elemento es básicamente un objeto que crea React para poder renderizar algo en pantalla. Este objeto se crea con el código core de React y luego es transformado por React DOM en algo que puede visibilizarse en pantalla. Por su parte, un componente es una función o una clase que nos permite jugar con las propiedades del objeto props y devolver un elemento React. Es decir, ya sea directamente con un elemento o con un componente, obtendremos un elemento React. Entonces, ¿cuál es la diferencia?

Cuando creamos un elemento React de manera directa, encontraremos que esta librería genera un createElement por el cual pasa un string del tipo de elemento, un objeto de props que puede ser null y un children según el tercer parámetro del elemento. Cuando creamos un elemento React a partir de un componente, encontraremos un createElement por el que se pasa la referencia de función del componente, en vez de un string del tipo de elemento.

React interpreta la diferencia entre elemento y componente a través del uso o no de la primera letra mayúscula. Entonces, si la primera letra es minúscula, React interpreta que este es un objeto nativo del DOM, asignándolo al atributo type. Pero si la primera letra de nuestro elemento es mayúscula, React sabrá que el objeto es una función. Entonces, React sabe que debe pasar dicha función como parámetro del comando createElement y de su atributo type.

Imaginémonos que tenemos un elemento como el de nuestro post sobre componentes en React, donde se utiliza un div para crear el elemento. Entonces, si llegáramos a ese elemento React de manera directa, veríamos un string «div» como primer parámetro. Pero si lo creamos a partir de un componente tipo función o clase, obtendremos como primer parámetro el nombre de la función.

La diferencia entre elemento y componente se ve de manera más clara dentro del inspector de tu navegador, donde podrás desplegar los atributos del elemento para entender la diferencia en la categoría type.

¿Qué sigue?

Ahora que sabes cuál es la diferencia entre elemento y componente en React, ¡es la hora de que empieces a utilizar estos dos objetos en tus propios proyectos! Para ello, te recomendamos nuestro Desarrollo Web Full Stack Bootcamp, un programa de formación intensiva en el que aprenderás a dominar lenguajes y herramientas de programación para la web como JavaScript, React, CSS y HTML. ¡No te lo pierdas!

👉 Descubre más del Desarrollo Web Full Stack Bootcamp ¡Descarga el temario!

👉 Prueba el Bootcamp Gratis por una Semana ¡Empieza ahora mismo!

👉 Conoce nuestros otros Bootcamps en Programación y Tecnología

[email protected]

¿Sabías que hay más de 40.000 vacantes para desarrolladores de software sin cubrir en España? 

En KeepCoding llevamos desde 2012 guiando personas como tú a áreas de alta empleabilidad y alto potencial de crecimiento en IT con formación de máxima calidad.

 

Porque creemos que un buen trabajo es fuente de libertad, independencia, crecimiento y eso ¡cambia historias de vida!


¡Da el primer paso! 

¿Sabías que hay más de 40.000 vacantes para desarrolladores web sin cubrir en España? 

En KeepCoding llevamos desde 2012 guiando personas como tú a áreas de alta empleabilidad y alto potencial de crecimiento en IT con formación de máxima calidad.

 

Porque creemos que un buen trabajo es fuente de libertad, independencia, crecimiento y eso ¡cambia historias de vida!


¡Da el primer paso!