Un composant universel (Universal Component) est la brique élémentaire d’une interface React. Il est totalement agnostique, c’est-à-dire qu’il ne contient aucune logique métier, aucun état interne complexe, et ne dépend d’aucun contexte applicatif spécifique.
Caractéristiques :
Hautement personnalisable : Il expose un grand nombre de props (couleur, taille, variant, etc.) pour s’adapter à tous les usages.
Réutilisable à l’infini : Il peut être utilisé dans n’importe quel projet, car il ne connaît rien de l’application qui l’héberge.
Sans effet de bord : Il ne fait pas d’appels API, n’accède pas au stockage local, et ne modifie pas d’état global.
Exemple : un composant ButtonBase qui accepte des props comme children, onClick, disabled, size et variant. Il se contente d’afficher un bouton HTML stylisé sans présumer de son usage final.
À retenir : C’est l’équivalent des « atomes » dans la méthodologie de design Atomic Design.