Introduction
Dans ce laboratoire, nous allons explorer la manière de créer un composant de contenu rétractable en React en utilisant le hook useState. Ce composant permettra aux utilisateurs de basculer la visibilité du contenu en cliquant sur un bouton, ce qui en fera un outil pratique pour organiser et présenter des informations sur une page web. À la fin de ce laboratoire, vous aurez une meilleure compréhension de la manière de créer des composants réutilisables en React qui améliorent l'accessibilité et l'expérience utilisateur de vos applications web.
Contenu rétractable
index.htmletscript.jsont déjà été fournis dans la machine virtuelle. En général, vous n'avez qu'à ajouter du code àscript.jsetstyle.css.
Cette fonction affiche un composant rétractable avec un bouton qui bascule la visibilité de son contenu. Voici comment l'utiliser :
- Utilisez le hook
useState()pour créer la variable d'étatisCollapsed, qui représente si le contenu est actuellement rétracté ou déplié. Initialisez-la àcollapsed. - Utilisez l'élément
<button>pour basculer l'étatisCollapsedet afficher/cacher le contenu passé via la propriétéchildren. - Utilisez
isCollapsedpour appliquer la classe CSS appropriée au conteneur de contenu, soitcollapsedsoitexpanded, qui détermine son apparence. - Mettez à jour l'attribut
aria-expandeddu conteneur de contenu en fonction de l'étatisCollapsed, pour rendre le composant accessible aux utilisateurs handicapés.
Voici le code CSS nécessaire pour ce composant :
.collapse-button {
display: block;
width: 100%;
}
.collapse-content.collapsed {
display: none;
}
.collapse-content.expanded {
display: block;
}
Et voici le code JavaScript :
const Collapse = ({ collapsed, children }) => {
const [isCollapsed, setIsCollapsed] = React.useState(collapsed);
return (
<>
<button
className="collapse-button"
onClick={() => setIsCollapsed(!isCollapsed)}
>
{isCollapsed ? "Afficher" : "Cacher"} le contenu
</button>
<div
className={`collapse-content ${isCollapsed ? "collapsed" : "expanded"}`}
aria-expanded={isCollapsed}
>
{children}
</div>
</>
);
};
Pour utiliser ce composant, appelez-le simplement avec le contenu que vous voulez rétracter :
ReactDOM.createRoot(document.getElementById("root")).render(
<Collapse>
<h1>Ceci est un rétractable</h1>
<p>Bonjour le monde!</p>
</Collapse>
);
Veuillez cliquer sur 'Go Live' dans le coin inférieur droit pour exécuter le service web sur le port 8080. Ensuite, vous pouvez rafraîchir l'onglet Web 8080 pour prévisualiser la page web.
Sommaire
Félicitations ! Vous avez terminé le laboratoire sur le contenu rétractable. Vous pouvez pratiquer d'autres laboratoires dans LabEx pour améliorer vos compétences.