Introduction
Dans ce laboratoire, nous allons construire un composant de zone de texte limitée à l'aide de React. Le but de ce laboratoire est de fournir une expérience pratique dans l'utilisation des hooks React, tels que useState() et useCallback(), pour créer un composant qui limite le nombre de caractères que l'utilisateur peut saisir dans une zone de texte. À la fin de ce laboratoire, vous aurez un composant de zone de texte fonctionnel qui affiche le compteur de caractères et limite le nombre de caractères que l'utilisateur peut saisir.
Zone de texte avec limite de caractères
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.
Voici le code :
const LimitedTextarea = ({ rows, cols, value, limit }) => {
const [content, setContent] = React.useState(value.slice(0, limit));
const setFormattedContent = React.useCallback(
(text) => {
setContent(text.slice(0, limit));
},
[limit]
);
return (
<>
<textarea
rows={rows}
cols={cols}
onChange={(event) => setFormattedContent(event.target.value)}
value={content}
/>
<p>
{content.length}/{limit}
</p>
</>
);
};
ReactDOM.createRoot(document.getElementById("root")).render(
<LimitedTextarea limit={32} value="Hello!" />
);
Dans ce code, nous :
- avons simplifié les commentaires pour fournir une vue d'ensemble plus concise de ce que fait chaque partie du code.
- avons supprimé les commentaires de code inutiles.
- avons supprimé la fonction
setContentdu tableau de dépendances deuseCallback, car elle n'est pas nécessaire. - avons ajouté des parenthèses autour de l'argument
textdans la fonctionuseCallbackpour la cohérence. - avons utilisé des fonctions fléchées pour le gestionnaire d'événement
onChangepour la concision.
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 Zone de texte avec limite de caractères. Vous pouvez pratiquer d'autres laboratoires dans LabEx pour améliorer vos compétences.