Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| front:composants_et_pages [2025/10/01 10:16] – [Comment faire un composant ?] paolo | front:composants_et_pages [Date inconnue] (Version actuelle) – supprimée - modification externe (Date inconnue) 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | # Composants et pages | ||
| - | Documentation [React](https:// | ||
| - | |||
| - | Les composants sont les éléments de base d'un projet React. Chacun d' | ||
| - | ### 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 '' | ||
| - | * on crée un dossier '' | ||
| - | |||
| - | La deuxième méthode est conseillée car elle offre un espace dédié au composant (dossier '' | ||
| - | . | ||
| - | ### 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, | ||
| - | |||
| - | Ici on va rester simple avec un composant avec quelques **props**: | ||
| - | |||
| - | |||
| - | ``` | ||
| - | // src/ | ||
| - | |||
| - | export const Input = (props) => { | ||
| - | const { label, id, ...inputProps } = props; | ||
| - | |||
| - | return ( | ||
| - | <div className=" | ||
| - | | ||
| - | < | ||
| - | htmlFor={id} | ||
| - | className=" | ||
| - | > | ||
| - | {label} | ||
| - | </ | ||
| - | } | ||
| - | <input | ||
| - | id={id} | ||
| - | className=" | ||
| - | { ...inputProps} | ||
| - | /> | ||
| - | </ | ||
| - | ); | ||
| - | }; | ||
| - | ``` | ||
| - | |||
| - | Utilisons maintenant ce composant dans une page de connexion par exemple. | ||
| - | |||
| - | ``` | ||
| - | // src/ | ||
| - | |||
| - | import { Input } from " | ||
| - | |||
| - | export const Login = () => { | ||
| - | return ( | ||
| - | <div className=" | ||
| - | <form className=" | ||
| - | <Input | ||
| - | id=" | ||
| - | name=" | ||
| - | label=" | ||
| - | type=" | ||
| - | placeholder=" | ||
| - | /> | ||
| - | <Input | ||
| - | id=" | ||
| - | name=" | ||
| - | label=" | ||
| - | type=" | ||
| - | placeholder=" | ||
| - | /> | ||
| - | <button className=" | ||
| - | Connexion | ||
| - | </ | ||
| - | </ | ||
| - | </ | ||
| - | ); | ||
| - | }; | ||
| - | ``` | ||
| - | |||
| - | Vous entrevoyez un peu le principe maintenant ? Les composants sont réutilisables et peuvent s' | ||
| - | |||
| - | Il n'y a pas vraiment de convention en ce qui concerne l' | ||
| - | |||
| - | Bon assez parlé ! Et si on essayait d' | ||
| - | |||
| - | Pour cela, nous pouvons ouvrir le fichier '' | ||
| - | |||
| - | ``` | ||
| - | // src/App.jsx | ||
| - | |||
| - | import { Login } from " | ||
| - | |||
| - | export const App = () => { | ||
| - | return ( | ||
| - | <Login /> | ||
| - | ); | ||
| - | }; | ||
| - | ``` | ||
| - | |||
| - | Nous lançons la commande '' | ||
| - | |||
| - | Les composants ci-dessus ainsi que tous les exemples suivants sont stylisés " | ||