Genera la estructura correcta de un nuevo componente Next.js para este proyecto. Usar cuando necesito crear un componente de UI genérico (ui/) o de dominio (features/). Detecta si necesita 'use client' o puede ser Server Component.
src/components/ui/ o src/components/features/Antes de escribir código, decide:
¿Necesita 'use client'?
useState, useEffect, u otros hooks de estado/efecto; maneja eventos del DOM (onClick, onChange); usa Recharts u otra librería que requiera el navegador¿Va en ui/ o features/?
ui/ → componente genérico reutilizable en cualquier contexto (Button, Card, Badge, Input, Modal)features/ → componente específico de dominio financiero (BudgetCard, ExpenseRow, PocketSummary, MonthChart)'use client')src/components/[ui|features]/NombreComponente.tsx
'use client')src/components/[ui|features]/NombreComponente.tsx
Si el componente tiene estilos complejos que Tailwind no cubre:
src/components/[ui|features]/NombreComponente.module.scss
import { type FC } from 'react';
interface NombreComponenteProps {
// props tipadas aquí
}
const NombreComponente: FC<NombreComponenteProps> = ({ ...props }) => {
return (
// JSX semántico, Tailwind para layout/utilidades
);
};
export default NombreComponente;
'use client';
import { type FC } from 'react';
interface NombreComponenteProps {
// props tipadas aquí
}
const NombreComponente: FC<NombreComponenteProps> = ({ ...props }) => {
// hooks aquí
return (
// JSX semántico, Tailwind para layout/utilidades
);
};
export default NombreComponente;
interface, nunca tipado inline en los parámetrosaria-label en interactivos sin texto visible, roles semánticos correctosIntl.NumberFormat en COPany, sin as unknown as Tdefault desde el archivo del componente