Componentes en React

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

React es una librería JavaScript que nos permite crear interfaces de usuario en el proceso de desarrollar aplicaciones de una sola página. Estas aplicaciones también son conocidas como SPA, pues esta es la sigla de su nombre en inglés: single page application. Dentro de React, existen dos tipos de objetos principales: los elementos y los componentes. En este post, te enseñaremos qué son y cómo funcionan los componentes en React.

Antes de empezar

En comparación a los elementos, los componentes en React tienen una lógica más diferente y compleja. Por ello, para enseñarte qué son los componentes en React, utilizaremos un ejemplo más práctico. Supongamos que tenemos el siguiente elemento, que, aunque hemos creado con una línea de código JSX, podríamos haber creado tranquilamente con el comando react.create element:

<script type = «text/label»>

const rootElement = document.getElementById (‘root’);

const helloWorld = <span> Hello World </span>;

const goodbyeWorld =span> Goodbye World </span>;

const element = (

<div className = ‘container’>

{helloWorld}

{goodbyeWorld}

</div>

);

</script>

En las líneas de código anteriores, hemos creado un elemento script dentro del cual hemos creado tres constantes. La constante rootElement cumple el único propósito de guargar el ID ‘root’ del elemento. Por su parte, las constantes helloWorld y goodbyeWorld guardan spans con un mensaje similar a su nombre.

Entonces, supongamos que queremos crear más spans con mensajes específicos. Hacer el mismo proceso de crear una constante en la que guardamos un span con un texto puede volverse tedioso. Por ello, podríamos crear una función en la que pasamos un texto y el programa nos devuelve el texto contenido dentro de un span.

A continuación, te mostramos cómo utilizamos los componentes en React para crear esta función:

<script type = «text/label»>

const rootElement = document.getElementById (‘root’);

const Message = props => <span> {props.msg} </span>

const element = (

<div className = ‘container’>

< Message msg = «Hello World» />

< Message msg = «Goodbye World»/>

</div>

);

</script>

En las líneas de código anteriores, hemos creado una nueva constante Message. Esta constante es realmente un componente de tipo función que coge el objeto props de un elemento y hace que su propiedad msg se encierre dentro de un span. Luego, hemos definido un elemento element, en el que hemos insertado los componentes Message, cada uno con un msg igualado a mensajes distintos. Estos serán los pasados por la función Message.

No olvides que, para que un componente sea renderizado por ReactDOM, debes asegurarte de que su nombre está escrito con la primera letra en mayúsculas. De esta manera, cuando React.createElement quiere crear un elemento para pasárselo a ReactDOM, puede distinguir entre un elemento nativo o puro del DOM, como lo sería un div, y un elemento que nosotros hemos creado.

¿Qué son los componentes en React?

Como has podido ver en el ejemplo anterior, los componentes en React son funciones que reciben el objeto de propiedades props como parámetro y devuelven elementos React. Entonces, podemos utilizar las propiedades que conforman el objeto props para ejecutar acciones automáticas. En el ejemplo anterior, las usamos para acceder a un texto msg y transformarlo en un span con dicho texto.

Hay dos tipos de componentes en React:

  • Por un lado, existen los componentes de tipo función como el ejemplo anterior, que se escriben así:

const Welcome = (props) => <div>Hello, {props.name} </div>;

  • Por otro lado, existen los componentes de tipo clase que se escriben de la siguiente manera:

class Welcome extends React.Component {

render () {

return (<div>Hello, {this.props.name}</div>);

}

}

Como puedes ver en las anteriores líneas de código, para acceder a una propiedad del objeto props en un componente tipo clase deberás utilizar el comando this. Este comando tiene el mismo sentido que en JavaScript, por lo que te recomendamos leer nuestro post sobre qué es this en JavaScript para conocer más sobre él. Además, todo componente tipo clase debe tener una función de tipo render, que básicamente nos define qué se va a renderizar en pantalla. Dentro de esta función es donde insertamos nuestro return.

En la práctica, utilizaremos mucho más a menudo el formato de componentes en React tipo función. Con este método, no solo nos ahorramos líneas de código, sino que también evitamos lidiar con this, un comando que no siempre es tan específico como queremos.

¿Te animas a seguir aprendiendo?

Ahora que sabes qué son y cómo funcionan los componentes en React, estás más cerca de dominar esta gran herramienta de programación. Desde KeepCoding, te invitamos a seguir aprendiendo con nosotros sobre esta y otras herramientas en nuestro Desarrollo Web Full Stack Bootcamp. Allí, entre muchas otras cosas, aprenderás a dominar JavaScript, React, CSS y HTML, convirtiéndote en un experto del desarrollo web en pocos meses. ¡Anímate a matricularte!

👉 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!