React Academy · Oppitunti

Milloin imperatiivisia ja deklaratiivisia API-rajapintoja käytetään

Ymmärtäkää kompromissit ja päättäkää, milloin ref-viitteiden ja imperatiivisten käsittelijöiden käyttö on perusteltua.

Oppitunti 4/412 vaihetta

Milloin imperatiivisia ja deklaratiivisia API-rajapintoja käytetään on ilmainen React Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/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.

React on oletusarvoisesti deklaratiivinen

React kannustaa deklaratiiviseen tyyliin: kuvaatte, miltä käyttöliittymän pitäisi näyttää tietyssä tilassa, ja React sovittaa DOM:n vastaamaan kuvausta. Useimmat toiminnot kulkevat propsien ja tilan kautta eivätkä suorina DOM-komentoina.

Tämä malli tekee käyttöliittymistä ennakoitavia, koska renderöity tulos on tilan puhdas funktio eikä manuaalisten muutosten sarjan tulos.

Milloin deklaratiivinen malli ei riitä

Jotkin vuorovaikutukset eivät taivu puhtaasti deklaratiiviseen esitykseen. Elementin imperatiivinen kohdistaminen, animaation käynnistäminen täsmällisellä hetkellä tai kolmannen osapuolen DOM-widgetin ohjaaminen ei usein onnistu siististi pelkän tilan funktiona.

Näitä tilanteita varten React tarjoaa escape hatch -mekanismeja, kuten refit ja imperatiiviset handlet, joita käytetään harkiten silloin, kun deklaratiiviset propsit eivät riitä.

Imperatiivisen koodin hinta

Imperatiivisilla API:lla on haittapuolensa. Niitä on vaikeampi testata, koska metodeja on kutsuttava ja sivuvaikutuksia tarkkailtava, ja ne voivat rikkoa yksisuuntaisen tietovirran, joka tekee React-sovelluksista helposti seurattavia.

Imperatiiviset kutsut myös hajauttavat toiminnan tapahtumankäsittelijöihin sen sijaan, että se keskittyisi selkeään tila–käyttöliittymä-kuvaukseen, mikä lisää ylläpidon kustannuksia.

Nyrkkisääntö

Suosikaa deklaratiivisia API:ja ja turvautukaa imperatiivisiin vain vuorovaikutuksiin ja mittauksiin, kuten kohdistamiseen, vieritykseen, animaatioihin, median toistoon sekä koon tai sijainnin lukemiseen.

Jos jokin voidaan mallintaa tilaksi, joka yhdistyy renderöityyn tulokseen, toimikaa niin. Jos kyseessä on hetkellinen toiminto, jolle ei ole selkeää tilaesitystä, imperatiivinen handle on sopiva ratkaisu.

Deklaratiivinen vs. imperatiivinen modaali

Deklaratiivinen modaali renderöityy vanhemman komponentin omistaman isOpen-propin perusteella, joten näkyvyyttä ohjataan tilalla. Imperatiivinen modaali tarjoaa open- ja close-metodit ja piilottaa oman tilansa handlen taakse.

Deklaratiivinen versio sopii paremmin Reactin tietovirtaan ja on yleensä suositeltava, kun taas imperatiivinen versio voi olla kätevä, jos käynnistys on tehtävä hajallaan olevasta tapahtumapohjaisesta koodista.

Lomakkeen nollaus: key-prop vai imperatiivinen nollaus

Voitte nollata lomakkeen deklaratiivisesti muuttamalla sen propin key arvoa, mikä pakottaa Reactin liittämään komponentin uudelleen oletustilassa. Imperatiivista kutsua ei tarvita.

Imperatiivinen vaihtoehto tarjoaa reset-metodin handlen kautta. key-temppu on usein selkeämpi, koska se hyödyntää Reactin sovitusta manuaalisen tilan tyhjentämisen sijaan.

Reitittimen prefetch imperatiivisena esimerkkinä

Next.js-reititin tarjoaa imperatiivisia metodeja, kuten push, replace ja prefetch. Reitin esilataaminen ennen todennäköistä navigointia on toiminto, ei osa renderöintitilaa, joten imperatiivinen kutsu sopii siihen luontevasti.

Tämä osoittaa, että jopa idiomaattiset React-työkalut käyttävät imperatiivisia API:ja, kun kyse on pohjimmiltaan tiettynä hetkenä käynnistettävästä toiminnosta.

Refit ovat escape hatch -mekanismeja

Virallisissa ohjeissa refit ja imperatiiviset handlet kuvataan escape hatch -mekanismeiksi: niiden avulla deklaratiivisen mallin ulkopuolelle astutaan silloin, kun se on aidosti välttämätöntä. Ne eivät ole oletustapa ominaisuuksien rakentamiseen.

Tämän ajattelutavan säilyttäminen ehkäisee liikakäyttöä: turvautukaa escape hatch -mekanismiin vasta varmistettuänne, etteivät propsit ja tila pysty ilmaisemaan toimintaa siististi.

Yhteenvetotarkistuslista

Ennen imperatiivisen handlen lisäämistä kysykää: voidaanko tämä mallintaa tilaksi, joka yhdistyy käyttöliittymään? Jos voidaan, pysykää deklaratiivisessa mallissa. Onko kyse kohdistamisesta, vierityksestä, mittauksesta, animaatiosta tai kolmannen osapuolen toiminnosta? Jos on, imperatiivinen ratkaisu voi olla perusteltu.

Varmistakaa myös, että pinta-ala on pieni ja dokumentoitu ettekä käytä refiä vain sellaisen tiedon välittämiseen, jonka prop voisi sisältää.

Molempien tyylien tasapainottaminen

Oikeat sovellukset yhdistävät molemmat lähestymistavat. Valtaosa logiikasta pysyy deklaratiivisena, ja vain pieni imperatiivisten handlejen kerros palvelee niitä harvoja vuorovaikutuksia, jotka niitä tarvitsevat.

Tämä tasapaino pitää koodin ennakoitavana ja testattavana, mutta mahdollistaa silti kohdistuksen hallinnan, median ohjaamisen ja kirjastojen integroinnin silloin, kun deklaratiivinen koodi ei yllä niihin.

Pikatarkistus: deklaratiivinen vs. imperatiivinen

Valitkaa, milloin imperatiivinen API on oikea työkalu.

Kertaus: deklaratiivinen vs. imperatiivinen

React käyttää oletusarvoisesti propsien ja tilan ohjaamaa deklaratiivista käyttöliittymää, joka on ennakoitava ja testattava. Imperatiiviset handlet toimivat escape hatch -mekanismeina kohdistamiseen, vieritykseen, animaatioihin, mittaukseen ja kolmannen osapuolen DOM-ohjaukseen.

Verratkaa deklaratiivisia ja imperatiivisia modaaleja, suosikaa key-propia lomakkeiden nollaukseen ja muistakaa, että myös Next.js-reititin käyttää imperatiivisia metodeja toimintoihin. Pitäkää imperatiivinen kerros pienenä, dokumentoituna ja perusteltuna.

Aloita maksutta

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 ”Milloin imperatiivisia ja deklaratiivisia API-rajapintoja käytetään” ilmainen?

Kyllä – oppitunnin ”Milloin imperatiivisia ja deklaratiivisia API-rajapintoja käytetään” 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 ”Milloin imperatiivisia ja deklaratiivisia API-rajapintoja käytetään”?

Ymmärtäkää kompromissit ja päättäkää, milloin ref-viitteiden ja imperatiivisten käsittelijöiden käyttö on perusteltua. 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 4/4.

Kuinka kauan ”Milloin imperatiivisia ja deklaratiivisia API-rajapintoja käytetään”-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

  1. forwardRef: DOM-viitteiden välittäminen emokomponenteille
  2. useImperativeHandle: mukautetut instanssiarvot
  3. Imperatiivisen komponentti-API:n rakentaminen
  4. Milloin imperatiivisia ja deklaratiivisia API-rajapintoja käytetään
← Takaisin: React Academy