Componentes y propiedades
Estos documentos son antiguos y no se actualizarán. Vaya a react.dev para ver los nuevos documentos de React.
Estas nuevas páginas de la documentación enseñan React moderno e incluyen ejemplos interactivos:
Los componentes permiten separar la interfaz de usuario en piezas independientes, reutilizables y pensar en cada pieza de forma aislada. Esta página proporciona una introducción a la idea de los componentes. Puedes encontrar una API detallada sobre componentes aquí.
Conceptualmente, los componentes son como las funciones de JavaScript. Aceptan entradas arbitrarias (llamadas “props”) y retornan elementos de React que describen lo que debe aparecer en la pantalla.
Componentes funcionales y de clase
La forma más sencilla de definir un componente es escribir una función de JavaScript:
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}Esta función es un componente de React válido porque acepta un solo argumento de objeto “props” (que proviene de propiedades) con datos y devuelve un elemento de React. Llamamos a dichos componentes “funcionales” porque literalmente son funciones JavaScript.
También puedes utilizar una clase de ES6 para definir un componente:
class Welcome extends React.Component {
render() {
return <h1>Hello, {this.props.name}</h1>;
}
}Los dos componentes anteriores son equivalentes desde el punto de vista de React.
Tanto los componentes de función como de clase tienen algunas características adicionales que veremos en las próximas secciones.
Renderizando un componente
Anteriormente, sólo encontramos elementos de React que representan las etiquetas del DOM:
const element = <div />;Sin embargo, los elementos también pueden representar componentes definidos por el usuario:
const element = <Welcome name="Sara" />;Cuando React ve un elemento representando un componente definido por el usuario, pasa atributos JSX e hijos a este componente como un solo objeto. Llamamos a este objeto “props”.
Por ejemplo, este código muestra “Hello, Sara” en la página:
function Welcome(props) { return <h1>Hello, {props.name}</h1>;
}
const root = ReactDOM.createRoot(document.getElementById('root'));
const element = <Welcome name="Sara" />;root.render(element);