Selain-API-rajapintojen tilaaminen
Rakentakaa hookeja, jotka tilaavat matchMedia-, navigator.onLine-, window history- ja localStorage-tapahtumia useSyncExternalStorella.
Selain-API-rajapintojen tilaaminen on ilmainen React Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu React Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. React Academy-kurssilla on yhteensä 4 oppituntia.
matchMediaen tilaaminen
Selaimen media queryt ovat täydellinen esimerkki ulkoisesta storesta. Voitte tilata dark mode -tilaa tai breakpointia vastaavan matchMedia-kyselyn ja renderöidä komponentin uudelleen aina match-tilan vaihtuessa.
Subscribe-funktio lisää muutosten kuuntelijan MediaQueryList-olioon, ja getSnapshot palauttaa sen nykyisen matches-totuusarvon, jolloin responsiivisiin ehtoihin saadaan reaktiivinen yhteys.
useMediaQuery-hook
Kokoamalla tämän logiikan useMediaQuery-hookiksi komponentit voivat kysyä yhdellä kutsulla, vastaako kysely ehtoa. Hook rakentaa vakaan subscriben ja getSnapshotin annetun kyselymerkkijonon ympärille.
Tuloksena on selkeä ja uudelleenkäytettävä perusratkaisu responsiiviseen toimintaan, joka säilyy yhtenäisenä samanaikaisessa renderöinnissä useSyncExternalStoren ansiosta.
navigator.onLine-tila
getSnapshot palauttaa navigator.onLinen, ja subscribe liittää kuuntelijat online- ja offline-tapahtumiin, jolloin komponentti päivittyy yhteyden tilan muuttuessa.
useOnlineStatus-hook
Kokoamalla tämän useOnlineStatus-hookiksi mikä tahansa komponentti voi näyttää offline-ilmoituksia tai poistaa toimintoja käytöstä verkkoyhteyden katketessa. Virallinen React-dokumentaatio käyttää juuri tätä esimerkkiä hookin esittelyyn.
Kyse on pienestä mutta havainnollisesta tapauksesta, jossa selaimen ulkoinen signaali voidaan yhdistää selkeästi reaktiivisen tilan osaksi.
window.locationin muutosten tilaaminen
Voitte tilata navigointimuutoksia kuuntelemalla popstate-tapahtumaa ja lukemalla window.locationin getSnapshotissa. Tämä muodostaa History API:n päälle rakennettujen yksinkertaisten mukautettujen reitittimien perustan.
Koska pushState ei lähetä popstate-tapahtumaa, mukautetut reitittimet lähettävät usein oman tapahtumansa, jotta snapshot päivittyy myös ohjelmallisen navigoinnin yhteydessä.
localStorage välilehtien välillä storage-tapahtuman avulla
storage-tapahtuma laukeaa muissa välilehdissä, kun localStorage muuttuu, joten siihen voi tilata kuten ulkoiseen storeen. getSnapshot lukee nykyisen arvon, ja subscribe kuuntelee storage-tapahtumia.
Tämä mahdollistaa välilehtien välisen synkronoinnin: yhdessä välilehdessä päivitetty arvo päivittää reaktiivisesti komponentit toisessa välilehdessä.
deviceOrientation
deviceorientation-tapahtuma ilmoittaa laitteen fyysisen kallistuksen. Tilaamalla tapahtuman ja lukemalla uusimmat kulmat getSnapshotissa liike- ja asentotiedot voidaan muuttaa reaktiiviseksi tilaksi.
Tämä on hyödyllistä parallaksiefekteissä ja interaktiivisissa visualisoinneissa, jotka reagoivat puhelimen asentoon.
IntersectionObserver-sovitin
IntersectionObserver ilmoittaa, kun elementti tulee näkyviin näkymäalueelle tai poistuu sieltä. Voitte kääriä sen niin, että subscribe luo observerin ja getSnapshot palauttaa uusimman isIntersecting-arvon.
Tuloksena on reaktiivinen isVisible-lippu kuvien laiskaan lataamiseen, animaatioiden käynnistämiseen tai loputtoman vierityksen rajapyykkien toteuttamiseen.
Elementin koon seuraaminen ResizeObserverilla
ResizeObserver raportoi elementin koon muutokset. Sen ympärille rakennettuna subscribe tarkkailee elementtiä ja getSnapshot palauttaa sen nykyiset mitat, joten komponentit reagoivat asettelun muutoksiin täsmällisesti.
Tämä on tehokkaampi ja tarkempi ratkaisu kuin window resize -tapahtuman kuunteleminen, kun haluatte seurata tiettyä elementtiä koko näkymäalueen sijaan.
Koostaminen useWindowSize-hookiksi
Voitte yhdistää resize-tapahtuman hookiin ja rakentaa useWindowSize-hookin, joka palauttaa nykyisen leveyden ja korkeuden. Subscribe liittää resize-kuuntelijan, ja getSnapshot lukee windowin mitat.
Muistakaa palauttaa vakaa snapshot: välimuistittakaa koko-olio, jotta muuttumattomat mitat eivät aiheuta uudelleenrenderöintejä ja koostaminen säilyy tehokkaana.
Pikatarkistus: useMediaQuery-toteutus
Päätelkää, miten useMediaQuery-hook käyttää store-hookia.
Kertaus: selaimen rajapintoihin tilaaminen
Monet selaimen rajapinnat ovat ulkoisia storeja, jotka voitte yhdistää useSyncExternalStorella: matchMedia breakpointteja varten, navigator.onLine yhteyden tilaa varten, location ja storage navigointiin ja välilehtien väliseen synkronointiin sekä orientation-, intersection- ja resize-observerit.
Kaikissa on sama rakenne: subscribe, joka liittää ja poistaa kuuntelijat, sekä vakaa getSnapshot. Koostakaa niistä hookeja, kuten useMediaQuery, useOnlineStatus ja useWindowSize.
Opi React tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 88
- Oppitunnit
- 324
Usein kysytyt kysymykset
Onko oppitunti ”Selain-API-rajapintojen tilaaminen” ilmainen?
Kyllä – oppitunnin ”Selain-API-rajapintojen tilaaminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko React Academy-kurssin, päivitä CoddyKit PROhon. React Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Selain-API-rajapintojen tilaaminen”?
Rakentakaa hookeja, jotka tilaavat matchMedia-, navigator.onLine-, window history- ja localStorage-tapahtumia useSyncExternalStorella. Harjoittelet React Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni React Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin React Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Selain-API-rajapintojen tilaaminen”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä React Academy-oppitunnilla?
Kyllä. Jokainen React Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Ulkoisen tilavaraston tilausmallin ongelma
- useSyncExternalStore API ja parametrit
- Selain-API-rajapintojen tilaaminen
- Mukautetun tilavaraston rakentaminen useSyncExternalStorella