React Cheatsheet
React Cheatsheet
Tip:
import { Fragment } from 'react'; El código anterior está en TypeScript, ya que las interfaces no existen
en JavaScript, pero nos ayudan a decir cómo luce el objeto Props.
export function MyComponent() {
return ( Tip 2:
<Fragment> Presta atención a la desestructuración de argumentos a la función y
<h1>Hola Mundo</h1> nombre de la prop al usar el componente.
<p>Este es un párrafo</p>
</Fragment> Children Prop
); Es una forma de mandar elementos hijos a un
} componente para renderizarlos en otro.
Pro Tip: type BoxProps = {
La forma abreviada del fragmento es esta, y no requiere children: React.ReactNode; // 👈 Este es el
importaciones. contenido que se coloca dentro del componente
};
export function MyComponent() {
return ( const Box = ({ children }: BoxProps) => {
<> return (
<div style={{ border: '2px solid blue'}}>
<h1>Hola Mundo</h1> {/* Renderiza lo que se pase dentro del componente */}
<p>Este es un párrafo</p> {children}
</> </div>
); );
};
}
export default Box;
useCallback Memoriza funciones para evitar Los hooks deben Si creas un custom hook,
recreaciones innecesarias. comenzar con use. asegúrate de llamarlo useAlgo,
por ejemplo: useFetch,
useLayoutE ect Similar al useE ect, pero useAuth, etc.
sincronizado justo después del
render. Evita efectos No pongas funciones que
secundarios innecesarios modi quen estado sin incluirlas
useImperativeHandle Expone métodos desde un en useE ect. en las dependencias, o se
componente con forwardRef puede crear un bucle in nito.
// Método para cambiar el mensaje Si se desea una aproximación más granular, donde los
const updateMessage = (newMessage: string) => {
setMessage(newMessage);
hijos se muestran tan pronto terminan, se deben de
}; colocar múltiples suspense.
<Suspense fallback={<BigSpinner />}>
return {
message, <Biography />
updateMessage, <Suspense fallback={<AlbumsGlimmer />}>
}; <Panel>
}; <Albums />
</Panel>
export default useMessage; </Suspense>
</Suspense>
Consumo del hook personalizado useMessage
const MessageComponent = () => {
const { message, updateMessage } = useMessage();
React compiler
return ( El compilador de React permite optimizaciones de
<div> código sin necesidad de memorización manual por
<h2>{message}</h2>
<button onClick={() => parte del desarrollador.
updateMessage(‘Saludos a todos! 🚀 ’)}>
Change message
</button>
Manejo de eventos
</div> Los eventos de los elementos son los mismos que ya
); estamos acostumbrados a usar en el DOM tradicional,
};
pero los nombres son con camelCase.
import { ChangeEvent, FC, MouseEvent, useState } from
'react';
<input
Se debe de colocar el <Suspense> component type="text"
placeholder="Escribe tu nombre"
import { Suspense } from 'react'; value={nombre}
import MyComponent from './MyComponent'; onChange={handleInputChange}
/>
export default function App() {
return ( <button onClick={handleClick}>Saludar</button>
</>
<Suspense fallback={<p>Loading...</p>}> );
<MyComponent /> };
</Suspense>
);
<textarea
placeholder="Escribe tu mensaje" Estilos condicionales
value={mensaje} El estilo condicional se puede aplicar en diferentes
onChange={handleMensajeChange}
/> niveles de componente.
interface Props {
<button type="submit">Enviar</button>
tipo: 'warning' | 'info';
</form>
}
);
};
export const DynamicStyle = ({ tipo }: Props) => {
const estilo: React.CSSProperties = {
Importante: color: tipo === 'warning' ? 'orange' : 'blue',
padding: '0.5rem',
Hay muchas formas de trabajar estos cambios, React };
tiene cientos de paquetes para el manejo de
return <p style={estilo}>Este es un mensaje de tipo
formularios con diferentes aproximaciones. {tipo}</p>;
};
Event Handler
Buenas prácticas Función que se ejecuta al ocurrir un evento (como
• Componentes pequeños y reutilizables. onClick, onMouseOver).
• Nombrado en PascalCase.
• Separar lógica del render. Controlled Component
• Extraer handlers (handleClick, handleChange). Elemento de formulario cuyo valor es manejado por el
• No usar Hooks dentro de condiciones o loops. estado de React.
• Crear hooks personalizados.
Uncontrolled Component
Glosario Elemento de formulario que maneja su propio valor
internamente, accesado con ref.
Los siguientes son términos importantes que se deben
de manejar por todo desarrollador de React. Keys
Identi cadores únicos usados en listas para ayudar a
React React a detectar cambios.
Es una biblioteca de JavaScript para crear interfaces
de usuario. Fragment
Permite agrupar múltiples elementos sin añadir un
JSX nodo extra (<> ... </>).
Es un lenguaje de marcado que permite escribir una
sintaxis similar a HTML en JavaScript. Children
Prop especial que representa los elementos anidados
Componentes dentro de un componente.
Son piezas de código que se pueden reutilizar y que se
encargan de una parte de la interfaz de usuario. Custom Hook
Función que encapsula lógica con hooks y puede
Props reutilizarse entre componentes.
Son datos que se pasan a un componente para que
pueda usarlos. Context API
Tradicionalmente el nombre que se da al gestor de
Estado estado propio en React.
Es un objeto que contiene datos que pueden cambiar
con el tiempo. Server Component
Componente que se ejecuta en el servidor (React 18+).
Hooks
Son funciones que permiten a los componentes usar el Suspense
estado y otras características de React. Componente que permite renderizar un fallback
mientras se carga algo (como lazy).
Context
Es un objeto que contiene datos que pueden ser Lazy loading
compartidos entre componentes. Técnica para cargar componentes o recursos solo
cuando se necesitan.
Renderizado (Render)
Es el proceso de convertir el código en HTML y
mostrarlo en el navegador. Memorización
Optimización para evitar renders innecesarios
Re-render (React.memo, useMemo).
Cuando React vuelve a dibujar un componente porque
cambió su estado o props. Prop Drilling
Signi ca pasar props de un componente a otro, a
Inmutabilidad través de muchos niveles intermedios.
Es el principio de que los datos no se pueden cambiar,
sino que se deben crear nuevos datos. Gestor de estado - State Manager
Es una herramienta o patrón que te ayuda a controlar y
Virtual DOM organizar los datos de la aplicación, particularmente
Representación en memoria del DOM real para hacer útil para evitar el Prop drilling.
actualizaciones e cientes.