Tutorial de React para Principiantes
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Tutorial de React para Principiantes
📚 ¿Qué es React?
React es una biblioteca de JavaScript para construir interfaces de usuario. Piensa en ella como una herramienta que te ayuda a crear páginas web dinámicas de manera organizada.
🧩 Conceptos Básicos de React
1. Componentes
Los componentes son como bloques de construcción de tu aplicación. Cada parte de tu página web puede ser un componente:
// Un componente básico
function Saludo() {
return <h1>¡Hola Mundo!</h1>;
}2. JSX
Es una extensión de JavaScript que parece HTML pero se escribe dentro de JavaScript:
// Esto es JSX
const elemento = <h1>Hola, mundo!</h1>;3. Props (Propiedades)
Son como parámetros que le pasas a un componente:
function Saludo(props) {
return <h1>Hola, {props.nombre}!</h1>;
}
// Uso: <Saludo nombre="Juan" />4. Estado (State)
Es la memoria de tu componente. Guarda datos que pueden cambiar:
import { useState } from 'react';
function Contador() {
const [contador, setContador] = useState(0);
return (
<div>
<p>Contador: {contador}</p>
<button onClick={() => setContador(contador + 1)}>
Incrementar
</button>
</div>
);
}🔄 Ciclo de Vida y Hooks
¿Qué son los Hooks?
Son funciones especiales que te permiten "enganchar" características de React a tus componentes.
Hook useState
Guarda datos que pueden cambiar:
// Sintaxis básica
const [valor, setValor] = useState(valorInicial);
// Ejemplo concreto
const [nombre, setNombre] = useState('Juan');
// nombre = 'Juan' (valor actual)
// setNombre('Ana') (función para cambiarlo a 'Ana')Hook useEffect
Ejecuta código después de que el componente se renderiza:
useEffect(() => {
// Este código se ejecuta después del primer render
// y cuando las dependencias cambien
}, [dependencias]);📝 Explicación Paso a Paso del Tutorial Anterior
Paso 1: Imports (Lo que traemos de React)
import React, { useState, useEffect } from 'react';
import MovieService from '../services/movie.service';Traducción:
"Oye React, necesito usar useState y useEffect. También necesito mi servicio de películas."
Paso 2: Estado para películas
const [movies, setMovies] = useState([]);Traducción:
movies: Variable que guarda la lista de películas (empieza vacía[])setMovies: Función para actualizar la listaEs como decir: "Tengo una caja llamada 'movies' que por ahora está vacía, y tengo una función para poner cosas en esa caja"
Paso 3: useEffect - El "al cargar la página"
useEffect(() => {
fetchMovies();
}, []);Traducción:
"Cuando esta página se cargue por primera vez, ejecuta la función fetchMovies(). El [] vacío significa: hazlo solo una vez al inicio."
Paso 4: Función para obtener películas
const fetchMovies = async () => {
try {
const response = await MovieService.getAll();
setMovies(response.data);
} catch (error) {
console.error('Ocurrió un error:', error);
}
};Traducción paso a paso:
"Voy a buscar las películas (esto puede tardar)"
"Intento (
try) llamar a mi servicio de películas""Cuando responda, guardo las películas en mi estado con
setMovies""Si algo sale mal (
catch), muestro el error"
Paso 5: Renderizar la tabla
{movies && movies.map((movie, index) => (
<tr key={index}>
<td>{movie.id}</td>
<td>{movie.title}</td>
<td>{movie.year}</td>
</tr>
))}Traducción:
movies &&: "Si existemovies(no es null o undefined)".map: "Para cada película en la lista"(movie, index): "Toma la película actual y su posición"<tr key={index}>: "Crea una fila con un identificador único"{movie.title}: "Muestra el título de esta película"
🎯 Ejemplo Práctico: Lista de Compras Sencilla
Vamos a hacer un ejemplo similar pero más simple:
import React, { useState, useEffect } from 'react';
function ListaCompras() {
// 1. Estado para los productos
const [productos, setProductos] = useState([]);
// 2. Efecto que se ejecuta al cargar
useEffect(() => {
// Datos de ejemplo (en lugar de llamar a una API)
const productosEjemplo = [
{ id: 1, nombre: 'Manzanas', cantidad: 5 },
{ id: 2, nombre: 'Leche', cantidad: 2 },
{ id: 3, nombre: 'Pan', cantidad: 1 }
];
setProductos(productosEjemplo);
}, []);
return (
<div>
<h2>Mi Lista de Compras</h2>
<table border="1">
<thead>
<tr>
<th>ID</th>
<th>Producto</th>
<th>Cantidad</th>
</tr>
</thead>
<tbody>
{productos.map((producto) => (
<tr key={producto.id}>
<td>{producto.id}</td>
<td>{producto.nombre}</td>
<td>{producto.cantidad}</td>
</tr>
))}
</tbody>
</table>
</div>
);
}
export default ListaCompras;🔍 Desglose Visual del Tutorial Original
Estructura del Componente MovieList:
MovieList Component
├── Estado (useState)
│ ├── movies: [] (arreglo vacío inicial)
│ └── setMovies: función para actualizar
│
├── Efecto (useEffect)
│ └── Ejecuta fetchMovies() al inicio
│
├── Funciones
│ ├── fetchMovies(): obtiene datos de la API
│ └── refreshList(): vuelve a cargar los datos
│
└── JSX (lo que se ve)
├── Div principal con clase "row"
│ ├── Columna izquierda (6/12)
│ │ ├── Título "Películas"
│ │ └── Tabla con datos
│ └── Columna derecha (6/12)
│ └── Espacio para detalles🛠️ Configuración Inicial para Practicar
1. Instalar Create React App
npx create-react-app mi-primera-app
cd mi-primera-app
npm start2. Estructura básica de archivos:
mi-primera-app/
├── public/
│ └── index.html
├── src/
│ ├── App.js # Componente principal
│ └── index.js # Punto de entrada
└── package.json3. Crea un archivo MovieList.js:
// Copia el ejemplo de ListaCompras arriba
// y modifícalo gradualmente❓ Preguntas Frecuentes de Principiantes
¿Por qué usamos key en el map?
React necesita una forma única de identificar cada elemento en una lista para actualizarlos eficientemente.
¿Qué significa async/await?
async: "Esta función es asíncrona (puede tomar tiempo)"await: "Espera a que esto termine antes de continuar"
¿Para qué sirve el arreglo [] en useEffect?
Le dice a React: "Ejecuta esto solo una vez al inicio". Si no lo pones, se ejecutaría en cada render.
📈 Flujo de Datos en Nuestro Componente
1. Componente se monta
↓
2. useEffect se ejecuta
↓
3. fetchMovies() llama a la API
↓
4. API responde con datos
↓
5. setMovies() actualiza el estado
↓
6. React re-renderiza con nuevos datos
↓
7. Tabla muestra las películas🎮 Ejercicios para Practicar
Ejercicio 1: Lista de Estudiantes
Crea un componente que muestre una lista de estudiantes con:
Nombre
Edad
Curso
Ejercicio 2: Contador con Botones
Crea un contador que:
Muestre un número
Tenga botones para aumentar y disminuir
Tenga un botón para reiniciar a cero
Ejercicio 3: Lista Interactiva
Crea una lista de tareas donde puedas:
Agregar nuevas tareas
Marcar tareas como completadas
Eliminar tareas
💡 Consejos para Aprender React
Empieza simple: No intentes entender todo de una vez
Practica modificando ejemplos: Cambia datos, añade columnas, etc.
Usa la consola del navegador: Presiona F12 y ve a "Console" para ver errores
Divide y vencerás: Separa tu código en componentes pequeños
Aprende haciendo: Escribe código, no solo leas tutoriales
🔗 Recursos Adicionales
¿Listo para intentarlo? Comienza con el ejemplo de Lista de Compras, modifícalo hasta que te sientas cómodo, y luego regresa al tutorial de películas. ¡Tú puedes! 🚀
- Obtener vínculo
- X
- Correo electrónico
- Otras apps
Comentarios
Publicar un comentario