Afficher une question
Comment afficher une question dans la page (et pas seulement dans la console) ?

📌 Objectifs
- Comprendre le fonctionnement du JSX dans React.
- Utiliser
useStatepour afficher dynamiquement une question. - Apprendre à afficher une question et ses réponses dans une page Web.
Notions théoriques
1. Qu’est-ce que JSX ?
JSX est une extension de JavaScript qui permet d’écrire du HTML directement dans le code JavaScript. C’est ce que vous utilisez dans un composant React.
Exemple :
return <h1>Bienvenue sur le Quiz Cyber</h1>;
Ici, on retourne un élément HTML (<h1>) dans du JavaScript.
Avantages
JSX rend le code plus lisible et plus proche de ce qu’on voit à l’écran.
Pourquoi JSX est utile ?
- Il permet de lier facilement les données et l’interface.
- Il rend l’affichage dynamique : le contenu peut changer en fonction de l’état de l’application.
2. Qu’est-ce que useState ?
useState est un hook de React. Il permet de gérer une donnée qui peut changer dans le temps, comme :
- une question actuelle,
- un score,
- une réponse sélectionnée.
Voici comment on l’utilise :
const [compteur, setCompteur] = useState(0);
compteurcontient la valeur actuelle.setCompteurest une fonction qui permet de modifier cette valeur.useState(0)initialise la valeur à 0 (valeur de départ).
3. Afficher dynamiquement une question
On va utiliser useState pour stocker une question et ses réponses, puis les afficher dans la page.
Exemple :
const [question, setQuestion] = useState({
texte: "Qu’est-ce qu’un mot de passe fort ?",
reponses: ["123456", "azerty", "Une phrase longue avec des caractères spéciaux"]
});
astuce
Ici, question est un objet avec :
- une propriété
textepour le texte de la question, - une propriété
reponsesqui est un tableau de réponses possibles.
Ensuite, dans le JSX :
<h2>{question.texte}</h2>
<ul>
{question.reponses.map((reponse, index) => (
<li key={index}>{reponse}</li>
))}
</ul>
info
{question.texte}affiche le texte de la question.- La méthode
.map()permet de parcourir le tableau des réponses et d’afficher chaque réponse dans une liste. key={index}est nécessaire pour que React puisse identifier chaque élément de la liste.