Nov 25, 2025

Comment utiliser les hooks pour les événements de souris dans React ?

Laisser un message

Dans le monde dynamique du développement de React, les hooks ont révolutionné la façon dont nous gérons l'état et les effets secondaires des composants fonctionnels. Parmi les différents types d'événements que nous pouvons gérer, les événements de souris sont particulièrement importants car ils nous permettent de créer des interfaces utilisateur interactives et attrayantes. En tant que principal fournisseur de hooks, nous comprenons les subtilités de l'utilisation des hooks pour les événements de souris dans React, et dans ce blog, nous explorerons comment les exploiter efficacement.

Comprendre les événements de souris dans React

Avant de plonger dans les hooks, il est essentiel de comprendre les différents événements souris disponibles dans React. React fournit un ensemble d'événements synthétiques compatibles avec tous les navigateurs et imitant les événements DOM natifs. Certains des événements de souris les plus couramment utilisés incluentsurMouseEnter,surSourisQuitter,surMouseDown,surMouseUp, etsurCliquez.

66-366-1

  • surMouseEnter: Cet événement est déclenché lorsque le pointeur de la souris entre dans un élément. C'est utile pour créer des effets de survol, tels que l'affichage d'informations supplémentaires lorsqu'un utilisateur survole une image ou un bouton.
  • surSourisQuitter: À l'opposé desurMouseEnter, cet événement se déclenche lorsque le pointeur de la souris quitte un élément. Il peut être utilisé pour masquer les informations supplémentaires affichées sursurMouseEnter.
  • surMouseDown: Se déclenche lorsque l'utilisateur appuie sur le bouton de la souris alors que le pointeur est sur un élément. Cela peut être utilisé pour des actions telles que le démarrage d'une opération de glisser-déposer.
  • surMouseUp: Déclenché lorsque l'utilisateur relâche le bouton de la souris alors que le pointeur est sur un élément. Il peut être associé àsurMouseDownpour effectuer une action glisser-déposer.
  • surCliquez: Une combinaison desurMouseDownetsurMouseUpévénements,surCliquezest utilisé pour gérer les actions de clic sur des éléments, telles que la soumission d'un formulaire ou la navigation vers une nouvelle page.

En utilisantutiliserÉtatCrochet pour les événements de souris

LeutiliserÉtathook est l’un des hooks les plus fondamentaux de React. Cela nous permet d'ajouter un état aux composants fonctionnels. Nous pouvons utiliserutiliserÉtatpour gérer les changements d'état déclenchés par les événements de la souris.

Prenons un exemple de création d'un bouton simple qui change de couleur lorsque la souris le survole.

importer React, { useState } from'react' ; const HoverButton = () => { const [isHovered, setIsHovered] = useState(false); const handleMouseEnter = () => { setIsHovered(true); } ; const handleMouseLeave = () => { setIsHovered(false); } ; const boutonStyle = { backgroundColor : isHovered ? 'bleu' : 'gris', couleur : 'blanc', remplissage : '10px 20px', bordure : 'aucun', borderRadius : '5px' }; return ( <button style={buttonStyle} onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave} > Survolez-moi </button> ); } ; exporter le HoverButton par défaut ;

Dans cet exemple, nous utilisons leutiliserÉtatcrochet pour gérer leest survoléÉtat. Lorsque la souris entre sur le bouton (surMouseEnterévénement), nous définissonsest survoléàvrai, et quand la souris part (surSourisQuitterévénement), nous le remettons àFAUX. Basé sur la valeur deest survolé, on change la couleur de fond du bouton.

En utilisantutiliserEffetCrochet pour les événements de souris

LeutiliserEffetle crochet est utilisé pour effectuer des effets secondaires dans les composants fonctionnels. Nous pouvons l'utiliser pour gérer les événements de souris dans des scénarios plus complexes, tels que l'ajout d'écouteurs d'événements globaux.

Supposons que nous voulions détecter quand l'utilisateur clique en dehors d'un modal. Nous pouvons utiliser leutiliserEffethook pour ajouter un écouteur d'événement de clic global au document.

importer React, { useState, useEffect, useRef } from'react' ; const Modal = () => { const [isOpen, setIsOpen] = useState(false); const modalRef = useRef(null); const openModal = () => { setIsOpen(true); } ; const closeModal = () => { setIsOpen(false); } ; useEffect(() => { const handleClickOutside = (event) => { if (modalRef.current &&!modalRef.current.contains(event.target)) { closeModal(); } }; document.addEventListener('mousedown', handleClickOutside); return () => { document.removeEventListener('mousedown', handleClickOutside); }; }, []); return ( <div> <button onClick={openModal}>Ouvrir le modal</button> {isOpen && ( <div ref={modalRef} className="modal"> <div className="modal-content"> <h2>Titre modal</h2> <p>Le contenu modal va ici.</p> <button onClick={closeModal}>Fermer</button> </div> </div> )} </div> ); } ; exporter le modal par défaut ;

Dans cet exemple, nous utilisons leutiliserEffetcrochet pour ajouter unsouris vers le basécouteur d'événements au document. Lorsque l'utilisateur clique en dehors du modal (déterminé en vérifiant si la cible du clic n'est pas à l'intérieur du modal à l'aide decontientméthode), nous fermons le modal. Nous nettoyons également l'écouteur d'événements dans la fonction de retour deutiliserEffetpour éviter les fuites de mémoire.

Hooks personnalisés pour les événements de souris

En tant que fournisseur de hooks, nous encourageons l'utilisation de hooks personnalisés pour encapsuler une logique complexe liée aux événements de souris. Un hook personnalisé est une fonction JavaScript dont le nom commence parutiliseret peut appeler d'autres hooks.

Créons un hook personnalisé appeléuseMousePositionqui suit la position de la souris sur l'écran.

importer React, { useState, useEffect } from'react' ; const useMousePosition = () => { const [mousePosition, setMousePosition] = useState({ x : 0, y : 0 }); const handleMouseMove = (event) => { setMousePosition({ x : event.clientX, y : event.clientY }); } ; useEffect(() => { window.addEventListener('mousemove', handleMouseMove); return () => { window.removeEventListener('mousemove', handleMouseMove); }; }, []); retourner mousePosition ; } ; const MousePositionTracker = () => { const { x, y } = useMousePosition(); return ( <div> <p>Position de la souris : ({x}, {y})</p> </div> ); } ; exporter le MousePositionTracker par défaut ;

Ce crochet personnaliséuseMousePositionutilise leutiliserÉtatetutiliserEffetcrochets pour suivre la position de la souris. Il ajoute undéplacement de la sourisécouteur d'événements à la fenêtre et met à jour l'état avec les coordonnées actuelles de la souris. Le crochet peut être réutilisé dans plusieurs composants pour suivre la position de la souris.

Nos offres de produits

En tant que fournisseur de crochets, nous proposons une large gamme de crochets de haute qualité pour diverses applications. Si vous recherchez des crochets pour tubes rectangulaires, consultez notreCrochet pour tube rectangulaire. Ces crochets sont conçus pour fournir une connexion sûre et fiable pour les tubes rectangulaires, garantissant ainsi stabilité et durabilité.

Pour les applications en rayon des supermarchés, notreCrochet de ligne d'étagère de supermarchéest un excellent choix. Ces crochets sont spécialement conçus pour maintenir les produits sur les étagères des supermarchés, permettant ainsi aux clients de parcourir et de sélectionner facilement les articles.

Contactez-nous pour l'approvisionnement

Si vous êtes intéressé par nos produits hook ou si vous avez des questions sur l'utilisation des hooks pour les événements de souris dans React, nous serions ravis de vous entendre. Que vous soyez un développeur à petite échelle ou une entreprise à grande échelle, nous pouvons vous fournir les crochets adaptés à vos besoins. Contactez-nous pour entamer une discussion sur l’approvisionnement et trouver les meilleures solutions pour vos projets.

Références

  • Réagissez à la documentation officielle sur les hooks
  • Guides de gestion des événements JavaScript DOM
Envoyez demande