Herramientas

Generador de Props React

Diseñar buenas APIs de componentes es más difícil que escribir la lógica interna. Este generador te da nombres de props siguiendo convenciones de React, con tipos TypeScript incluidos para componentes más predecibles y fáciles de usar.

Instantáneo🔒En tu navegadorSin registro
En vivo
    Ver como texto

    Convenciones de nomenclatura en React

    Los event handlers arrancan con 'on' seguido del verbo en pasado del evento: onClick, onChange, onSubmit. Esto diferencia handlers (callbacks que tu componente recibe) de métodos internos (handleClick, handleChange). Un componente Button debería recibir onClick, no handleClick. El prefijo 'handle' es para métodos privados de tu componente.

    Props booleanas usan prefijos is/has/should: isOpen, hasError, shouldRender. Evitá negativos como isNotDisabled; mejor: isEnabled. Los negativos dobles (disabled={!isNotHidden}) confunden. Una excepción: disabled es idiomático en HTML, así que disabled (no isDisabled) está bien para consistencia con el DOM.

    Props de contenido que aceptan React.ReactNode deberían tener nombres descriptivos: leftIcon no icon, emptyState no fallback, errorMessage no error (error es mejor para el objeto Error). Esto hace el código autodocumentado:

    Preguntas frecuentes

    ¿Cuándo usar props opcionales vs requeridas?

    Hacé opcional lo que tiene un default razonable (size, variant). Requerí lo esencial para que el componente funcione (data en una DataTable, children en un Container). Props opcionales sin default deberían tener comportamiento de fallback claro.

    ¿Debería usar prefijos para todas las props?

    No. Prefijos como is/has/on son convenciones útiles pero no rígidas. Usá onClick para handlers, isOpen para booleanas. Pero children, className, title no necesitan prefijos; son idiomáticos sin ellos.

    ¿Cómo nombrar props que aceptan componentes?

    Usá sustantivos descriptivos: icon, header, footer, emptyState. Si tu prop es un componente completo, usá PascalCase: IconComponent, HeaderComponent. Esto diferencia instancias (<Icon />) de definiciones (Icon).

    ¿Qué convención seguir para props de estilo?

    Siempre incluí className para permitir override de estilos. Considerá variant/size para variaciones predefinidas. Evitá exponer todas las props de CSS individualmente (backgroundColor, fontSize); eso rompe encapsulación. Usá className o style para casos edge.

    ¿Te sirvió este generador?