Bruno R
Los componentes permiten seprarar la interfaz de usuario (IU) en piezas independientes, reutilizables y pensar en cada pieza de forma aislada.
La forma mas sencilla de construir un componente de React es mediante una funcion de JS
function Welcome(props) { return <h1>Hello, {props.name}</h1>; }
Tambien se puede utilizar una clase de ES6 para definir un componente:
class Welcome extends React.Component { render() { return <h1>Hello, {this.props.name}</h1>; } }
Los elementos de React pueden represenar etiquetas del DOM
const element = <div />;
pero tambien pueden representar componentes definidos por el usario:
const element = <Welcome name="Sara" />;
Cuando React detecta que estamos utilizando un elementos con componentes definidos por el usuario, pasa atributos e hijos JSX a este componente como un solo objeto, denominado “props”.
//componente definido por el usuario function Welcome(props) { return <h1>Hello, {props.name}</h1>; } //elemento de React basado en el componente definido anteriormente //este tiene el atributo y valor (tambien podrian estar los hijos del elemento) //todos estos son los considerados objeto props que seran renderizados cuando llamemos al elemento const element = <Welcome name="Sara" />; //y aca nada, se renderiza ReactDOM.render( element, document.getElementById('root') );
Recapitulemos lo que sucede en este ejemplo:
Los componentes pueden referirse a otros componentes en su salida. Esto nos permite utilizar la misma abstraccion de componente para cualquier nivel de detalle.
Botones, cuadros de dialogo, formularios. Todos son expresados comunmente como componentes en React.
function Welcome(props) { return <h1>Hello, {props.name}</h1>; } function App() { return ( <div> <Welcome name="Sara" /> <Welcome name="Cahal" /> <Welcome name="Edite" /> </div> ); } ReactDOM.render( <App />, document.getElementById('root') );
Considera el dividir los componentes en otros mas pequeños, donde sea posible, por ejemplo:
Ya sea declarando un componente como funcion o como clase nunca debe modificar sus props, osea la salida de la funcion no debe modificar la entrada de esta.
Ej:
function sum(a, b) { return a + b; }
function withdraw(account, amount) { account.total -= amount; }
Esta es considerada una regla de React, los componentes deben de actuar como funciones puras, para saldar esta regla en paginas dinamicas donde los valores pueden cambiar con el tiempo, se introduce el concepto de “estado”. Gracias al estado los componentes pueden cambiar su salida segun se requiera, dependiendo de la interaccion del usuario, respuesta de red, etc; sin violar esta regla.
Glosario de palabras
Buscar conceptos