Convenciones y patrones para escribir componentes de React en el proyecto ModyMate.
Al crear o modificar componentes React (.jsx) en este proyecto, sigue estas directrices para mantener la consistencia y la calidad del código.
PascalCase.jsx (ej. DayCard.jsx).export const MiComponente). NUNCA uses export default.props para mayor claridad.array de dependencias a los hooks useEffect, y . Si no tiene dependencias, usa un array vacío .useCallbackuseMemo[]Usa esta plantilla como punto de partida para nuevos componentes.
import React, { useState, useEffect } from 'react';
// Importa el hook de autenticación si es necesario
import { useAuth } from '../context/useAuth';
// Importa estilos si aplican
// import './MiComponente.css';
export const MiComponente = ({ prop1, prop2 }) => {
// --- Hooks ---
const [miEstado, setMiEstado] = useState(null);
const { user } = useAuth(); // Ejemplo de uso del contexto
useEffect(() => {
// Lógica de efectos secundarios (ej. fetching de datos)
// ...
}, [prop1]); // Array de dependencias
// --- Manejadores de eventos ---
const handleClick = () => {
// ...
};
// --- Renderizado ---
return (
<div className="mi-componente">
<h1>{prop1}</h1>
<p>Usuario: {user ? user.email : 'No autenticado'}</p>
<button onClick={handleClick}>Accion</button>
</div>
);
};
useState para valores primitivos (strings, booleans, números) o arrays/objetos simples.useReducer.useAuth() que proviene de src/context/useAuth.js.
import { useAuth } from '../context/useAuth';
const { user, session, loading } = useAuth();
src/context.MiComponente.css y impórtalo. Para estilos globales, modifica src/index.css.className="day-card-container").