В динамичния свят на разработката на React, куките революционизираха начина, по който обработваме състоянието и страничните ефекти във функционалните компоненти. Сред различните видове събития, които можем да управляваме, събитията с мишката са особено важни, тъй като ни позволяват да създаваме интерактивни и ангажиращи потребителски интерфейси. Като водещ доставчик на кукички, ние разбираме тънкостите на използването на кукички за събития на мишката в React и в този блог ще проучим как да ги използваме ефективно.
Разбиране на събитията на мишката в React
Преди да се потопите в куките, важно е да разберете различните събития на мишката, налични в React. React предоставя набор от синтетични събития, които са съвместими между браузъри и имитират родните DOM събития. Някои от най-често използваните събития на мишката включватonMouseEnter,onMouseLeave,onMouseDown,onMouseUp, иonClick.


onMouseEnter: Това събитие се задейства, когато показалецът на мишката влезе в елемент. Полезно е за създаване на ефекти при задържане, като например показване на допълнителна информация, когато потребителят задържи курсора на мишката над изображение или бутон.onMouseLeave: Противоположно наonMouseEnter, това събитие се задейства, когато показалецът на мишката напусне елемент. Може да се използва за скриване на допълнителната информация, която е била показана наonMouseEnter.onMouseDown: Задейства се, когато потребителят натисне бутона на мишката, докато показалецът е върху елемент. Това може да се използва за действия като стартиране на операция плъзгане и пускане.onMouseUp: Задейства се, когато потребителят пусне бутона на мишката, докато показалецът е върху елемент. Може да се комбинира сonMouseDownза да завършите действие с плъзгане и пускане.onClick: Комбинация отonMouseDownиonMouseUpсъбития,onClickсе използва за обработка на действия с щракване върху елементи, като изпращане на формуляр или навигиране до нова страница.
ИзползванеuseStateКука за събития с мишката
TheuseStatehook е една от най-фундаменталните куки в React. Позволява ни да добавяме състояние към функционалните компоненти. Можем да използвамеuseStateза управление на промените в състоянието, предизвикани от събития на мишката.
Нека вземем пример за създаване на прост бутон, който променя цвета си, когато мишката се задържи върху него.
import React, {useState} from'react'; const HoverButton = () => { const [isHovered, setIsHovered] = useState(false); const handleMouseEnter = () => { setIsHovered(true); }; const handleMouseLeave = () => { setIsHovered(false); }; const buttonStyle = {backgroundColor: isHovered? 'синьо' : 'сиво', цвят: 'бяло', подложка: '10px 20px', рамка: 'няма', borderRadius: '5px' }; return ( <button style={buttonStyle} onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave} > Задръжте ме </button> ); }; експортиране по подразбиране HoverButton;
В този пример използвамеuseStateкука за управление наisHoveredсъстояние. Когато мишката влезе в бутона (onMouseEnterсъбитие), задавамеisHoveredкъмвярно, и когато мишката напусне (onMouseLeaveсъбитие), ние го връщаме наневярно. Въз основа на стойността наisHovered, променяме цвета на фона на бутона.
ИзползванеuseEffectКука за събития с мишката
TheuseEffectкуката се използва за извършване на странични ефекти във функционални компоненти. Можем да го използваме за обработка на събития на мишката в по-сложни сценарии, като добавяне на глобални слушатели на събития.
Да предположим, че искаме да открием, когато потребителят кликне извън модал. Можем да използвамеuseEffectкука за добавяне на глобален слушател на събитие за щракване към документа.
import 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}>Open Modal</button> {isOpen && ( <div ref={modalRef} className="modal"> <div className="modal-content"> <h2>Модално заглавие</h2> <p>Модалното съдържание влиза тук.</p> <button onClick={closeModal}>Затваряне</button> </div> </div> )} </div> ); }; експортиране по подразбиране Modal;
В този пример използвамеuseEffectкука за добавяне на amousedownслушател на събития към документа. Когато потребителят щракне извън модала (определено чрез проверка дали целта за щракване не е вътре в модала, използвайкисъдържаметод), затваряме модалния. Ние също почистваме слушателя на събития във функцията за връщане наuseEffectза да избегнете изтичане на памет.
Персонализирани кукички за събития с мишката
Като доставчик на куки, ние насърчаваме използването на персонализирани куки за капсулиране на сложна логика, свързана със събитията на мишката. Персонализираната кука е JavaScript функция, чието име започва сизползванеи може да извиква други куки.
Нека създадем персонализирана кука, нареченаuseMousePositionкойто проследява позицията на мишката върху екрана.
import 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); }; }, []); връщане на mousePosition; }; const MousePositionTracker = () => { const { x, y } = useMousePosition(); return ( <div> <p>Позиция на мишката: ({x}, {y})</p> </div> ); }; експортиране по подразбиране MousePositionTracker;
Тази персонализирана кукаuseMousePositionизползваuseStateиuseEffectкуки за проследяване на позицията на мишката. Той добавя aдвижение на мишкатаслушател на събития към прозореца и актуализира състоянието с текущите координати на мишката. Куката може да се използва повторно в множество компоненти за проследяване на позицията на мишката.
Нашите продуктови предложения
Като доставчик на куки, ние предлагаме широка гама от висококачествени куки за различни приложения. Ако търсите куки за правоъгълни тръби, разгледайте нашитеКука за правоъгълни тръби. Тези куки са проектирани да осигурят сигурна и надеждна връзка за правоъгълни тръби, като гарантират стабилност и издръжливост.
За приложения на рафтове в супермаркети, нашитеКука за рафтове в супермаркетие отличен избор. Тези куки са специално проектирани да държат продукти на рафтовете на супермаркетите, което улеснява клиентите да разглеждат и избират артикули.
Свържете се с нас за поръчки
Ако се интересувате от нашите продукти с кукички или имате въпроси относно използването на кукички за събития на мишката в React, ще се радваме да чуем от вас. Независимо дали сте малък разработчик или голямо предприятие, ние можем да предоставим правилните куки за вашите нужди. Свържете се с нас, за да започнем дискусия за поръчка и да намерим най-добрите решения за вашите проекти.
Референции
- Реагирайте на официалната документация на куките
- Ръководства за обработка на събития на JavaScript DOM
