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 | ||
composants_et_pages [2025/09/25 07:50] – paolo | composants_et_pages [2025/09/25 12:53] (Version actuelle) – paolo | ||
---|---|---|---|
Ligne 3: | Ligne 3: | ||
Les composants sont les éléments de base d'un projet React. Chacun d' | Les composants sont les éléments de base d'un projet React. Chacun d' | ||
- | #### Comment faire un composant ? | + | #### Où ranger |
Imaginons que l'on souhaite faire un composant de formulaire comprenant **label** + **input**. | Imaginons que l'on souhaite faire un composant de formulaire comprenant **label** + **input**. | ||
Ligne 10: | Ligne 10: | ||
* on crée un fichier '' | * on crée un fichier '' | ||
* on crée un dossier '' | * 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, | ||
+ | |||
+ | Je vous invite à jeter un coup d' | ||
+ | |||
+ | Ici on va rester simple avec un composant avec quelques **props**: | ||
``` | ``` | ||
export const Input = (props) => { | export const Input = (props) => { | ||
- | const { label, id, inputProps } = props; | + | const { label, id, ...inputProps } = props; |
return ( | return ( | ||
Ligne 35: | Ligne 45: | ||
}; | }; | ||
``` | ``` | ||
+ | |||
+ | Utilisons maintenant ce composant dans une page de connexion par exemple ('' | ||
+ | |||
+ | ``` | ||
+ | import { Input } from " | ||
+ | |||
+ | export const Login = () => { | ||
+ | return ( | ||
+ | <div className=" | ||
+ | <form className=" | ||
+ | <Input | ||
+ | id=" | ||
+ | label=" | ||
+ | type=" | ||
+ | placeholder=" | ||
+ | /> | ||
+ | <Input | ||
+ | id=" | ||
+ | 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 çà, on peut ouvrir le fichier '' | ||
+ | |||
+ | ``` | ||
+ | import { Login } from " | ||
+ | |||
+ | export const App = () => { | ||
+ | return ( | ||
+ | <Login /> | ||
+ | ); | ||
+ | }; | ||
+ | ``` | ||
+ | |||
+ | On lance la commande '' |