Tutorial de ReactJS PDF
Tutorial de ReactJS PDF
Gómez
https://softwarecrafters.io/react/tutorial-react-js-introduccion
Hoy me toca escribir sobre otra de las tecnologías que uso en varios de los
proyectos en los que trabajo, ReactJS. Se que existe muchísima información en
la red sobre esta librería, aunque en muchos casos inconexa.
¿Qué es React.js?
Como muchos ya sabréis, ReactJS es una librería Javascript desarrollada
por Facebook y diseñada para ayudarnos a crear SPA's (Single Page
Application), su objetivo concretamente es tratar de facilitar la tarea
de desarrollar interfaces de usuario. Podríamos decir que React es la V en un
contexto en el que se use el patrón MVC o MVVM.
Create React App se puede utilizar con el nuevo gestor de dependencias Yarn,
creado también por la gente de Facebook, o con el clásico NPM. En el
artículo haré uso de NPM, aunque te aconsejo que le des una oportunidad a Yarn,
tiene muy buena pinta.
El único requisito imprescindible para poder hacer uso de Create React App con
NPM es tener instalado en el sistema una versión de NodeJs >= 4. Si ya dispones
de npm puedes instalar create react app como cualquier otro paquete:
npm install -g create-react-app
Es importante tener en cuenta que para que Create React App funcione
correctamente tenemos que tener obligatoriamente el fichero principal de html en
"public/index.html" y punto de entrada de javascript en "scr/index.js".
La app de ejemplo
La app que se va a desarrollar constará de un formulario en el que el usuario
podrá introducir un nombre y un email, y estos se añadirán a un listado (demo).
La web app estará formada por tres componentes que iremos construyendo a lo
largo del artículo, User, UserList, UserForm ; además del componente principal
(App) y el punto de entrada (index.js. Puedes descargar el ejemplo completo
desde mi cuenta de Github.
ReactDOM.render(
<App />,
document.getElementById('root')
);
Las props, básicamente, son el mecanismo principal de React para pasar datos de
un componente padre a un componente hijo.
Anidación de componentes
En el código del componente anterior renderizará una lista de usuarios, para ello
hace uso del método map, con el cual itera sobre cada uno de los elementos del
array de usuarios que contiene la propiedad this.props.users, esta prop será
recibida desde el componente App.
Map devuelve por cada elemento un componente User, el cual recibe vía props el
nombre, el email y una key. La propiedad key es un identificador que usa React
en las listas, para renderizar los componentes de forma más eficiente.
Componentes stateless
Todos los componentes implementados hasta el momento han sido stateless, sin
estado. Este tipo de componentes podrían representarse como una función pura:
function User(props) {
return (
<li>{props.name} - {props.email}</li>
);
}
Las funciones puras por definición no tienen efectos colaterales, con lo cual este
tipo de componentes no admite ciclos de vida. Para no complicar las cosas,
continuaremos creando nuestros componentes como clases.
Componentes statefull
Los componentes con estado permiten mantener datos propios a lo largo del
tiempo e implementar comportamientos en sus diferentes métodos del ciclo de
vida.
Métodos de actualización:
Métodos de desmontaje:
render() {
return (
<UserList users={this.state.users} />
);
}
}
Propagación de eventos
Los eventos, al contrario que las propiedades, se propagan de hijos a padres. Es
decir, son lanzados por los componentes hijos y el padre es el encargado de
gestionarlos.
handleOnAddUser (event) {
event.preventDefault();
let user = {
name: event.target.name.value,
email: event.target.email.value
};
this.setState({
users: this.state.users.concat([user])
});
}
render() {
return (
<div>
<UserList users={this.state.users} />
<UserForm onAddUser={this.handleOnAddUser.bind(this)} />
</div>
);
}
}
Resumen
En este tutorial he tratado de mostrar el funcionamiento básico de ReactJS
mientras he ido exponiendo los elementos fundamentales. Aunque he condensado
bastante información en este artículo, me he dejado muchísimos elementos en el
tintero. La idea es que esta entrada sirva como base a futuras publicaciones
relacionadas con esta magnífica librería.