# Composants et pages Les composants sont les éléments de base d'un projet React. Chacun d'entre d'eux représente une partie de l'interface utilisateur. Ils sont réutilisables et facilitent le développement ainsi que la maintenance du projet. #### Où ranger un composant ? Imaginons que l'on souhaite faire un composant de formulaire comprenant **label** + **input**. Pour cela on a deux possibilités: * on crée un fichier ''Input.jsx'' soit ''components/form/Input.jsx'' * on crée un dossier ''Input'' puis un fichier ''index.jsx'' à l'intérieur soit ''components/form/Input/index.jsx'' La deuxième méthode est conseillée car elle offre un espace dédié au composant (dossier ''Input'') dans lequel d'autres fichiers le concernant pourront être placés. #### Comment faire un composant ? Un composant est avant tout une fonction **JS** (fléchée ou déclarée) retournant du **JSX** (un mélange de **JS** et de balises **HTML** en quelques sortes). Un composant peut renvoyer une portion d’interface, ou être plus avancé en gérant des **props** (paramètres du composant), en modifiant l’état interne (**useState**, **useReducer**, ...) et en utilisant des effets (**useEffect**). On peut aisin construire une interface réutilisable, dynamique et modulaire. Je vous invite à jeter un coup d'oeuil à la documentation de [React](https://react.dev/). Ici on va rester simple avec un composant avec quelques **props**: ``` export const Input = (props) => { const { label, id, ...inputProps } = props; return (