Hari ini kita akan meneroka cara menggunakan API pemerhati persimpangan dalam React dengan beberapa contoh.
Dokumentasi web Mozilla menerangkan API pemerhati persimpangan sebagai:
membenarkan kod untuk mendaftarkan fungsi panggil balik yang berjalan apabila elemen yang mereka mahu pantau memasuki atau meninggalkan elemen lain (atau port pandangan), atau apabila nilai yang kedua-duanya bersilang menukar jumlah yang diminta. Dengan cara ini, tapak tidak lagi perlu melakukan apa-apa pada utas utama untuk memerhati jenis persilangan unsur ini dan penyemak imbas bebas untuk mengoptimumkan pengurusan persimpangan seperti yang difikirkan patut.
Ringkasnya, ia membolehkan kami mengesan apabila elemen tertentu kelihatan dalam port pandangan, ini hanya berlaku apabila elemen itu memenuhi nisbah persilangan yang diingini.
Seperti yang anda lihat, jika anda menatal ke bawah halaman nisbah persilangan akan meningkat sehingga mencapai had yang diunjurkan dan pada masa itu fungsi yang melaksanakan panggilan balik dicetuskan.
const observer = new IntersectionObserver(callbackFunction, options) observer.observer(elementToObserver)
Objek pembina pemerhati persimpangan memerlukan dua hujah:
Itu sahaja, kami bersedia untuk melihat beberapa tindakan, tetapi pertama, kami perlu mengetahui maksud setiap pilihan, hujah pilihan ialah objek dengan nilai berikut:
const options = { root: null, rootMargin: "0px", threshold: 1 }
Sekarang kita akan melihat pelaksanaan API pemerhati persimpangan dalam React.
const observer = new IntersectionObserver(callbackFunction, options) observer.observer(elementToObserver)
const options = { root: null, rootMargin: "0px", threshold: 1 }
Ingat, ini hanyalah pelaksanaan asas dan terdapat beberapa cara untuk melakukannya.
Sekarang kami akan melaksanakan kod yang sama seperti yang kami lakukan sebelum ini, tetapi memisahkan semua logik dalam cangkuk nu dipanggil useElementOnScreen.
const containerRef = useRef(null) const [isVisible, setIsVisible] = useState(false) const callbackFunction = (entries) => { const [entry] = entries setIsVisible(entry.isIntersecting) } const options = { root: null, rootMargin: "0px", threshold: 1.0 } useEffect(() => { const observer = new IntersectionObserver(callbackFunction, options) if (containerRef.current) observer.observe(containerRef.current) return () => { if (containerRef.current) observer.unobserve(containerRef.current) } }, [containerRef, options]) return ( <div className="app"> <div className="isVisible">{isVisible ? "IN VIEWPORT" : "NOT IN VIEWPORT"}</div> <div className="section"></div> <div className="box" ref={containerRef}>Observe me</div> </div> )
<div className="box" ref={containerRef}>Observe me</div>
1- Import cangkuk yang baru dibuat ke dalam komponen kami.
2 - Mulakan dengan objek pilihan.
3 - Beginilah cara kami menyelesaikannya.
Tahniah, kami telah berjaya menggunakan API pemerhati persimpangan dan juga mencipta cangkuk untuknya!
Pemerhati Persimpangan menggunakan React, asalnya ditulis oleh penggodam produk
Terima kasih kerana membaca artikel ini. Saya harap saya dapat memberikan anda beberapa maklumat yang berguna. Jika ya, saya sangat gembira jika anda mengesyorkan siaran ini dan klik butang ♥ supaya lebih ramai orang dapat melihatnya.
Atas ialah kandungan terperinci Cara menggunakan Intersection Observer dalam React. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!