Nov 25, 2025

Bagaimana cara menggunakan cangkuk untuk peristiwa tetikus dalam React?

Tinggalkan pesanan

Dalam dunia yang dinamik pembangunan React, cangkuk telah merevolusikan cara kita mengendalikan kesan keadaan dan sampingan dalam komponen berfungsi. Di antara pelbagai jenis peristiwa yang boleh kita uruskan, peristiwa tetikus sangat penting kerana mereka membolehkan kita membuat antara muka pengguna interaktif dan menarik. Sebagai pembekal cangkuk utama, kami memahami selok -belok menggunakan cangkuk untuk peristiwa tetikus dalam React, dan dalam blog ini, kami akan meneroka cara memanfaatkannya dengan berkesan.

Memahami peristiwa tetikus dalam React

Sebelum menyelam ke dalam cangkuk, penting untuk memahami peristiwa tetikus yang berbeza yang terdapat dalam React. React menyediakan satu set peristiwa sintetik yang bersesuaian dengan penyemak imbas dan meniru peristiwa DOM asli. Beberapa peristiwa tetikus yang paling biasa digunakan termasukOnmouseEnter,Onmouseleave,Onmousedown,onmouseup, danonclick.

66-366-1

  • OnmouseEnter: Acara ini dicetuskan apabila penunjuk tetikus memasuki elemen. Ia berguna untuk mewujudkan kesan hover, seperti menunjukkan maklumat tambahan apabila pengguna melayang ke atas imej atau butang.
  • Onmouseleave: Bertentangan denganOnmouseEnter, peristiwa ini membakar apabila penunjuk tetikus meninggalkan elemen. Ia boleh digunakan untuk menyembunyikan maklumat tambahan yang ditunjukkanOnmouseEnter.
  • Onmousedown: Kebakaran apabila pengguna menekan butang tetikus semasa penunjuk berada di atas elemen. Ini boleh digunakan untuk tindakan seperti memulakan operasi seret - dan - drop.
  • onmouseup: Dicetuskan apabila pengguna melepaskan butang tetikus sementara penunjuk berada di atas elemen. Ia boleh dipasangkan denganOnmousedownUntuk melengkapkan tindakan seret - dan - drop.
  • onclick: Gabungan dariOnmousedowndanonmouseupperistiwa,onclickdigunakan untuk mengendalikan tindakan klik pada elemen, seperti mengemukakan borang atau menavigasi ke halaman baru.

MenggunakanUSESTATECangkuk untuk acara tetikus

TheUSESTATEHook adalah salah satu cangkuk yang paling asas dalam React. Ia membolehkan kita menambah keadaan kepada komponen berfungsi. Kita boleh menggunakanUSESTATEUntuk menguruskan perubahan keadaan yang dicetuskan oleh peristiwa tetikus.

Mari kita ambil contoh membuat butang mudah yang mengubah warna apabila tetikus melayang di atasnya.

import react, {usestate} dari'React '; const hoverbutton = () => {const [ishovered, setIshovered] = useState (false); const handLemouseEnter = () => {setIshOvered (true); }; const handlemouseLeave = () => {setIshovered (false); }; Const ButtonStyle = {BackgroundColor: Ishovered? 'biru': 'kelabu', warna: 'putih', padding: '10px 20px', sempadan: 'none', borderradius: '5px'}; kembali (<butang gaya = {ButtonStyle} onMouseEnter = {handLemouseEnter} onMouseLeave = {handlemouseAve}> hover me </button>); }; eksport lalai hoverbutton;

Dalam contoh ini, kami menggunakanUSESTATEcangkuk untuk menguruskandipenuhiNegeri. Apabila tetikus memasuki butang (OnmouseEnteracara), kami menetapkandipenuhikeBenar, dan ketika tetikus daun (Onmouseleaveacara), kami menetapkannya kembalipalsu. Berdasarkan nilaidipenuhi, Kami menukar warna latar belakang butang.

MenggunakanuseeffectCangkuk untuk acara tetikus

TheuseeffectHook digunakan untuk melakukan kesan sampingan dalam komponen berfungsi. Kita boleh menggunakannya untuk mengendalikan peristiwa tetikus dalam senario yang lebih kompleks, seperti menambah pendengar acara global.

Katakan kami ingin mengesan apabila pengguna mengklik di luar modal. Kita boleh menggunakanuseeffectHook untuk menambah pendengar acara klik global ke dokumen.

import bertindak balas, {usestate, useeffect, useref} dari'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.RemoveEventListener ('mousedown', handleclickoutside); return (<div> <butang onclick = {openModal}> buka modal </butang> {isopen && (<div ref = {modalref} className = "modal"> <div className = "modal-content"> <h2> tajuk modal </h2> </div> </div>)} </div>); }; modal lalai eksport;

Dalam contoh ini, kami menggunakanuseeffectcangkuk untuk menambah amousedownpendengar acara ke dokumen. Apabila pengguna mengklik di luar modal (ditentukan dengan memeriksa sama ada sasaran klik tidak berada di dalam modal menggunakanmengandungikaedah), kami menutup modal. Kami juga membersihkan pendengar acara dalam fungsi pengembalianuseeffectUntuk mengelakkan kebocoran ingatan.

Cangkuk tersuai untuk acara tetikus

Sebagai pembekal cangkuk, kami menggalakkan penggunaan cangkuk tersuai untuk merangkum logik kompleks yang berkaitan dengan peristiwa tetikus. Cangkuk tersuai adalah fungsi JavaScript yang namanya bermula dengangunakandan boleh memanggil cangkuk lain.

Mari buat cangkuk tersuai yang dipanggilusemousepositionItu menjejaki kedudukan tetikus pada skrin.

import bertindak balas, {usestate, useeffect} dari'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);};}, []); kembali mouseposition; }; const mousePositionTracker = () => {const {x, y} = useMousePosition (); kembali (<div> <p> kedudukan tetikus: ({x}, {y}) </p> </div>); }; eksport mousepositiontracker;

Cangkuk adat iniusemousepositionmenggunakanUSESTATEdanuseeffectcangkuk untuk mengesan kedudukan tetikus. Ia menambah amousemovePendengar acara ke tetingkap dan mengemas kini keadaan dengan koordinat tetikus semasa. Cangkuk boleh digunakan semula dalam pelbagai komponen untuk mengesan kedudukan tetikus.

Tawaran produk kami

Sebagai pembekal cangkuk, kami menawarkan pelbagai cangkuk berkualiti tinggi untuk pelbagai aplikasi. Sekiranya anda mencari cangkuk untuk tiub segi empat tepat, lihat kamiCangkuk untuk tiub segi empat tepat. Cangkuk ini direka untuk menyediakan sambungan yang selamat dan boleh dipercayai untuk tiub segi empat tepat, memastikan kestabilan dan ketahanan.

Untuk aplikasi rak pasar raya, kamiCangkuk talian rak supermarketadalah pilihan yang sangat baik. Cangkuk ini direka khusus untuk memegang produk di rak pasar raya, menjadikannya mudah bagi pelanggan untuk melayari dan memilih item.

Hubungi kami untuk perolehan

Jika anda berminat dengan produk Hook kami atau mempunyai sebarang soalan mengenai penggunaan cangkuk untuk peristiwa tetikus dalam React, kami ingin mendengar daripada anda. Sama ada anda pemaju skala kecil atau perusahaan skala besar, kami dapat memberikan cangkuk yang tepat untuk keperluan anda. Hubungi kami untuk memulakan perbincangan perolehan dan cari penyelesaian terbaik untuk projek anda.

Rujukan

  • Bertindak balas dokumentasi rasmi mengenai cangkuk
  • Panduan pengendalian acara javascript dom
Hantar pertanyaan