W dynamicznym świecie programowania React, haki zrewolucjonizowały sposób, w jaki radzimy sobie ze stanami i efektami ubocznymi w komponentach funkcjonalnych. Spośród różnych typów zdarzeń, którymi możemy zarządzać, zdarzenia myszy są szczególnie ważne, ponieważ pozwalają nam tworzyć interaktywne i angażujące interfejsy użytkownika. Jako wiodący dostawca hooków rozumiemy zawiłości używania hooków do obsługi zdarzeń myszy w React, dlatego na tym blogu przyjrzymy się, jak skutecznie je wykorzystać.
Zrozumienie zdarzeń myszy w React
Zanim zagłębisz się w hooki, koniecznie poznaj różne zdarzenia myszy dostępne w React. React zapewnia zestaw syntetycznych zdarzeń, które są kompatybilne z różnymi przeglądarkami i naśladują natywne zdarzenia DOM. Niektóre z najczęściej używanych zdarzeń myszy obejmująnaMouseEnter,onMouseLeave,naMouseDown,naMouseUp, InaKliknij.


naMouseEnter: To zdarzenie jest wyzwalane, gdy wskaźnik myszy wejdzie w element. Jest to przydatne do tworzenia efektów najechania kursorem, takich jak wyświetlanie dodatkowych informacji, gdy użytkownik najedzie kursorem na obraz lub przycisk.onMouseLeave: PrzeciwnienaMouseEnter, to zdarzenie jest wywoływane, gdy wskaźnik myszy opuszcza element. Można go użyć do ukrycia dodatkowych informacji, które zostały pokazanenaMouseEnter.naMouseDown: Uruchamia się, gdy użytkownik naciśnie przycisk myszy, gdy wskaźnik znajduje się nad elementem. Można tego użyć do takich działań, jak rozpoczęcie operacji przeciągania i upuszczania.naMouseUp: Wywoływane, gdy użytkownik zwolni przycisk myszy, gdy wskaźnik znajduje się nad elementem. Można go sparowaćnaMouseDownaby zakończyć akcję przeciągnij i upuść.naKliknij: KombinacjanaMouseDownInaMouseUpwydarzenia,naKliknijsłuży do obsługi akcji kliknięcia elementów, takich jak przesłanie formularza lub przejście do nowej strony.
Używaniestan użyciaHak do wydarzeń związanych z myszą
Thestan użyciahook jest jednym z najbardziej podstawowych hooków w React. Pozwala nam dodawać stan do komponentów funkcjonalnych. Możemy skorzystaćstan użyciado zarządzania zmianami stanu wywołanymi zdarzeniami myszy.
Weźmy przykład tworzenia prostego przycisku, który zmienia kolor po najechaniu na niego myszką.
importuj reakcję, {useState } z'reaguj'; const HoverButton = () => { const [isHovered, setIsHovered] = useState(false); const handleMouseEnter = () => { setIsHovered(true); }; const handleMouseLeave = () => { setIsHovered(false); }; const przyciskStyle = { kolor tła: jest najechany? „niebieski”: „szary”, kolor: „biały”, dopełnienie: „10px 20px”, obramowanie: „brak”, borderRadius: „5px” }; return ( <button style={buttonStyle} onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave} > Najedź na mnie </button> ); }; eksportuj domyślny przycisk HoverButton;
W tym przykładzie używamystan użyciahak do zarządzaniajest zawieszonypaństwo. Kiedy mysz wejdzie w przycisk (naMouseEnterwydarzenie) ustalamyjest zawieszonyDoPRAWDA, a kiedy mysz opuści (onMouseLeavewydarzenie), ustawiliśmy go z powrotem naFAŁSZ. Na podstawie wartościjest zawieszony, zmieniamy kolor tła przycisku.
UżywanieużyjEfektuHak do wydarzeń związanych z myszą
TheużyjEfektuhak służy do wykonywania efektów ubocznych w elementach funkcjonalnych. Możemy go używać do obsługi zdarzeń myszy w bardziej złożonych scenariuszach, takich jak dodawanie globalnych detektorów zdarzeń.
Załóżmy, że chcemy wykryć, kiedy użytkownik kliknie poza modalem. Możemy skorzystać zużyjEfektuhook, aby dodać do dokumentu globalny detektor zdarzeń kliknięcia.
import Reaguj, { useState, useEffect, useRef } z'reaguj'; const Modal = () => { const [isOpen, setIsOpen] = useState(false); const modalRef = useRef(null); const openModal = () => { setIsOpen(true); }; const bliskoModal = () => { 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}>Otwórz modalne</button> {isOpen && ( <div ref={modalRef} className="modal"> <div className="modal-content"> <h2>Tytuł modalny</h2> <p>Tutaj umieszczana jest treść modalna.</p> <button onClick={closeModal}>Zamknij</button> </div> </div> )} </div> ); }; eksportuj domyślny modalny;
W tym przykładzie używamyużyjEfektuhak, aby dodaćmysz w dółsłuchacz zdarzeń w dokumencie. Kiedy użytkownik kliknie poza modalem (co określa się poprzez sprawdzenie, czy cel kliknięcia nie znajduje się wewnątrz modalu, za pomocązawierametoda), zamykamy modal. Czyścimy także detektor zdarzeń w funkcji returnużyjEfektuaby uniknąć wycieków pamięci.
Niestandardowe hooki na zdarzenia myszy
Jako dostawca hooków zachęcamy do stosowania niestandardowych hooków w celu hermetyzacji złożonej logiki związanej ze zdarzeniami myszy. Niestandardowy hak to funkcja JavaScript, której nazwa zaczyna się odużywaći może wywoływać inne hooki.
Stwórzmy niestandardowy hak o nazwieużyj pozycji myszyktóry śledzi pozycję myszy na ekranie.
importuj reakcję, {useState, useEffect } z'reaguj'; 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); }; }, []); zwróć pozycję myszy; }; const MousePositionTracker = () => { const { x, y } = useMousePosition(); return ( <div> <p>Pozycja myszy: ({x}, {y})</p> </div> ); }; eksportuj domyślny MousePositionTracker;
Ten niestandardowy hakużyj pozycji myszyużywastan użyciaIużyjEfektuhaczyki do śledzenia pozycji myszy. Dodaje Aruch myszydetektor zdarzeń do okna i aktualizuje stan przy użyciu bieżących współrzędnych myszy. Haczyk można ponownie wykorzystać w wielu komponentach do śledzenia pozycji myszy.
Nasza oferta produktów
Jako dostawca haczyków oferujemy szeroką gamę wysokiej jakości haczyków do różnorodnych zastosowań. Jeśli szukasz haczyków do rur prostokątnych, sprawdź naszeHak do rur prostokątnych. Haki te zostały zaprojektowane w celu zapewnienia bezpiecznego i niezawodnego połączenia rur prostokątnych, zapewniając stabilność i trwałość.
Do zastosowań na półkach supermarketów naszeHak do linek do półek w supermarkecieto doskonały wybór. Haczyki te zostały specjalnie zaprojektowane do mocowania produktów na półkach supermarketów, ułatwiając klientom przeglądanie i wybieranie produktów.
Skontaktuj się z nami w sprawie zakupów
Jeśli interesują Cię nasze produkty z hakami lub masz jakiekolwiek pytania dotyczące używania hooków do obsługi zdarzeń myszy w React, chętnie się z Tobą skontaktujemy. Niezależnie od tego, czy jesteś programistą na małą skalę, czy dużym przedsiębiorstwem, możemy zapewnić haczyki odpowiednie do Twoich potrzeb. Skontaktuj się z nami, aby rozpocząć dyskusję zakupową i znaleźć najlepsze rozwiązania dla swoich projektów.
Referencje
- Reaguj na oficjalną dokumentację dotyczącą haków
- Przewodniki obsługi zdarzeń JavaScript DOM
