Common components (e.g. <div>)
Kaikki selaimeen sisäänrakennetut komponentit, kuten <div>, tukevat joitakin yleisiä propseja ja tapahtumia.
- Viite
- Yleiset komponentit (kuten
<div>) refcallback-funktio- React tapahtumaolio
AnimationEventkäsittelijäfunktioClipboardEventkäsittelijäfunktioCompositionEventkäsittelijäfunktioDragEventkäsittelijäfunktioFocusEventkäsittelijäfunktioEventkäsittelijäfunktioInputEventkäsittelijäfunktioKeyboardEventkäsittelijäfunktioMouseEventkäsittelijäfunktioPointerEventkäsittelijäfunktioTouchEventkäsittelijäfunktioTransitionEventkäsittelijäfunktioUIEventkäsittelijäfunktioWheelEventkäsittelijäfunktio
- Yleiset komponentit (kuten
- Käyttö
Viite
Yleiset komponentit (kuten <div>)
<div className="wrapper">Jotain sisältöä</div>Propsit
Nämä Reactin erikoispropsit tuetaan kaikissa sisäänrakennetuissa komponenteissa:
-
children: A React noodi (elementti, merkkijono, numero, portaali, tyhjä noodi kutennull,undefinedja totuusarvot, tai taulukko muista React noodeista). Määrittää komponentin sisällön. Kun käytät JSX:ää, määritätchildrenpropsin yleensä epäsuorasti upottamalla tageja kuten<div><span /></div>. -
dangerouslySetInnerHTML: Olio muodossa{ __html: '<p>some html</p>' }jossa on raaka HTML merkkijono sisällä. Ohittaa DOM noodininnerHTMLominaisuuden ja näyttää annetun HTML:n sisällä. Tätä tulisi käyttää erityisellä varovaisuudella! Jos HTML sisällä ei ole luotettavaa (esimerkiksi jos se perustuu käyttäjän dataan), riski XSS haavoittuvuuden tuomisesta. Lue lisäädangerouslySetInnerHTML:n käytöstä. -
ref: Ref oliouseRef:sta taicreateRef:sta, tairefkutsufunktio, tai merkkijono vanhoille refseille. Refisi täytetään tämän DOM noodin elementillä. Lue lisää DOM:n manipuloinnista refien avulla. -
suppressContentEditableWarning: Totuusarvo. Jostrue, estää Reactin näyttämästä varoitusta elementeille joilla on sekächildrenettäcontentEditable={true}(jotka eivät normaalisti toimi yhdessä). Käytä tätä jos rakennat tekstisyöttökirjastoa joka hallinnoicontentEditablesisältöä manuaalisesti. -
suppressHydrationWarning: Totuusarvo. Jos käytät palvelimen renderöintiä, normaalisti varoitetaan jos palvelin ja selain renderöivät eri sisältöä. Joissain harvoissa tapauksissa (kuten aikaleimoissa), on hyvin vaikeaa tai mahdotonta taata täsmällistä vastaavuutta. Jos asetatsuppressHydrationWarning:n arvoksitrue, React ei varoita sinua eroista elementin attribuuteissa ja sisällössä. Se toimii vain yhden tason syvyyteen asti, ja on tarkoitettu käytettäväksi pakotienä. Älä käytä sitä liikaa. Lue lisää hydratointivirheiden estämisestä. -
style: Olio CSS tyyleistä, esimerkiksi{ fontWeight: 'bold', margin: 20 }. Samalla tavalla kuin DOMstyleominaisuudessa, CSS ominaisuudet tulee kirjoittaacamelCasemuodossa, esimerkiksifontWeightfont-weight:n sijaan. Voit antaa merkkijonoja tai numeroita arvoiksi. Jos annat numeron, kutenwidth: 100, React lisää automaattisestipx(“pikseliä”) arvon perään ellei kyseessä ole yksikköominaisuus. Suosittelemme käyttämäänstyle:a vain dynaamisissa tyyleissä joissa et tiedä tyylejä etukäteen. Muissa tapauksissa, pelkkien CSS luokkien käyttäminenclassName:n kanssa on tehokkaampaa. Lue lisääclassNamejastyle:sta.
Nämä standardit DOM propsit tuetaan myös kaikissa sisäänrakennetuissa komponenteissa:
accessKey: Merkkijono. Määrittää pikanäppäimen elementille. Ei yleensä suositeltavaa.aria-*: ARIA attribuuttien avulla voit määrittää saavutettavuuspuun tiedot tälle elementille. Katso ARIA attribuutit täydellistä viitettä varten. Reactissa kaikki ARIA attribuuttien nimet ovat täsmälleen samat kuin HTML:ssä.autoCapitalize: Merkkijono. Määrittää pitäisikö ja miten käyttäjän syöte kirjoittaa isolla alkukirjaimella.className: Merkkijono. Määrittää elementin CSS luokan. Lue lisää CSS tyyleistä.contentEditable: Totuusarvo. Jostrue, selain antaa käyttäjän muokata renderöityä elementtiä suoraan. Tätä käytetään toteuttamaan rikastekstisyöttökirjastoja kuten Lexical. React varoittaa jos yrität antaa React lapsia elementille jolla oncontentEditable={true}koska React ei pysty päivittämään sisältöä käyttäjän muokkauksen jälkeen.data-*: Data attribuuttien avulla voit liittää merkkijono-dataa elementtiin, esimerkiksidata-fruit="banana". Reactissa niitä ei yleensä käytetä koska data luetaan yleensä propsista tai tilasta.dir: Joko'ltr'tai'rtl'. Määrittää elementin tekstin suunnan.draggable: Totuusarvo. Määrittää onko elementti raahattava. Osa HTML Drag and Drop API:a.enterKeyHint: Merkkijono. Määrittää mitä toimintoa esitetään enter näppäimelle virtuaalisilla näppäimistöillä.htmlFor: Merkkijono.<label>ja<output>elementeille, antaa sinun liittää labelin johonkin kontrolliin. Sama kuinforHTML attribuutti. React käyttää standardia DOM ominaisuuden nimeä (htmlFor) HTML attribuutin nimen sijaan.hidden: Totuusarvo tai merkkijono. Määrittää pitäisikö elementin olla piilotettuna.id: Merkkijono. Määrittää uniikin tunnisteen tälle elementille, jota voidaan käyttää löytämään se myöhemmin tai yhdistämään se muihin elementteihin. Luo seuseId:lla välttääksesi törmäykset saman komponentin useiden instanssien välillä.is: Merkkijono. Jos määritetty, komponentti käyttäytyy kuin custom elementti.inputMode: Merkkijono. Määrittää minkä tyyppisen näppäimistön näyttää (esimerkiksi teksti, numero tai puhelinnumero).itemProp: Merkkijono. Määrittää minkä ominaisuuden elementti edustaa strukturoituja data crawlereita varten.lang: Merkkijono. Määrittää elementin kielen.onAnimationEnd:AnimationEventkäsittelijäfunktio. Suoritetaan kun CSS animaatio päättyy.onAnimationEndCapture: VersioonAnimationEnd:sta joka suoritetaan nappausvaiheessa.onAnimationIteration:AnimationEventkäsittelijäfunktio. Suoritetaan kun CSS animaation iteraatio päättyy ja toinen alkaa.onAnimationIterationCapture: VersioonAnimationIteration:sta joka suoritetaan nappausvaiheessa.onAnimationStart:AnimationEventkäsittelijäfunktio. Suoritetaan kun CSS animaatio alkaa.onAnimationStartCapture:onAnimationStart, but fires in the nappausvaiheessa.onAuxClick:MouseEventkäsittelijäfunktio. Suoritetaan kun ei-pääpainiketta painetaan.onAuxClickCapture: VersioonAuxClick:sta joka suoritetaan nappausvaiheessa.onBeforeInput:InputEventkäsittelijäfunktio. Suoritetaan ennen muokattavan elementin arvon muuttamista. React ei vielä käytä selaimenbeforeinputtapahtumaa, vaan yrittää polyfillata sen käyttäen muita eventtejä.onBeforeInputCapture: VersioonBeforeInput:sta joka suoritetaan nappausvaiheessa.onBlur:FocusEventkäsittelijäfunktio. Suoritetaan kun elementti menettää kohdistuksen. Toisin kuin selaimenblurtapahtuma, ReactissaonBlurtapahtuma kuplii.onBlurCapture: VersioonBlur:sta joka suoritetaan nappausvaiheessa.onClick:MouseEventkäsittelijäfunktio. Suoritetaan kun pääpainiketta painetaan osoittimella.onClickCapture: VersioonClick:sta joka suoritetaan nappausvaiheessa.onCompositionStart:CompositionEventkäsittelijäfunktio. Suoritetaan kun syöttömenetelmän editori aloittaa uuden kompositioistunnon.onCompositionStartCapture: VersioonCompositionStart:sta joka suoritetaan nappausvaiheessa.onCompositionEnd:CompositionEventkäsittelijäfunktio. Suoritetaan kun syöttömenetelmän editori lopettaa tai peruuttaa kompositioistunnon.onCompositionEndCapture: VersioonCompositionEnd:sta joka suoritetaan nappausvaiheessa.onCompositionUpdate:CompositionEventkäsittelijäfunktio. Suoritetaan kun syöttömenetelmän editori vastaanottaa uuden merkin.onCompositionUpdateCapture: VersioonCompositionUpdate:sta joka suoritetaan nappausvaiheessa.onContextMenu:MouseEventkäsittelijäfunktio. Suoritetaan kun käyttäjä yrittää avata kontekstivalikon.onContextMenuCapture: VersioonContextMenu:sta joka suoritetaan nappausvaiheessa.onCopy:ClipboardEventkäsittelijäfunktio. Suoritetaan kun käyttäjä yrittää kopioida jotain leikepöydälle.onCopyCapture: VersioonCopy:sta joka suoritetaan nappausvaiheessa.onCut:ClipboardEventkäsittelijäfunktio. Suoritetaan kun käyttäjä yrittää leikata jotain leikepöydälle.onCutCapture: VersioonCut:sta joka suoritetaan nappausvaiheessa.onDoubleClick:MouseEventkäsittelijäfunktio. Suoritetaan kun käyttäjä painaa pääpainiketta kahdesti. Vastaa selaimendblclicktapahtumaa.onDoubleClickCapture: VersioonDoubleClick:sta joka suoritetaan nappausvaiheessa.onDrag:DragEventkäsittelijäfunktio. Suoritetaan kun käyttäjä raahaa jotain.onDragCapture: VersioonDrag:sta joka suoritetaan nappausvaiheessa.onDragEnd:DragEventkäsittelijäfunktio. Suoritetaan kun käyttäjä lopettaa raahaamisen.onDragEndCapture: VersioonDragEnd:sta joka suoritetaan nappausvaiheessa.onDragEnter:DragEventkäsittelijäfunktio. Suoritetaan kun raahattu sisältö tulee pätevän pudotuskohteen sisään.onDragEnterCapture: VersioonDragEnter:sta joka suoritetaan nappausvaiheessa.onDragOver:DragEventkäsittelijäfunktio. Suoritetaan pätevällä pudotuskohteella kun raahattu sisältö raahataan sen päällä. Sinun tulee kutsuae.preventDefault()täällä jotta pudottaminen sallitaan.onDragOverCapture: VersioonDragOver:sta joka suoritetaan nappausvaiheessa.onDragStart:DragEventkäsittelijäfunktio. Suoritetaan kun käyttäjä aloittaa raahaamisen.onDragStartCapture: VersioonDragStart:sta joka suoritetaan nappausvaiheessa.onDrop:DragEventkäsittelijäfunktio. Suoritetaan kun jotain pudotetaan pätevälle pudotuskohteelle.onDropCapture: VersioonDrop:sta joka suoritetaan nappausvaiheessa.onFocus:FocusEventkäsittelijäfunktio. Suoritetaan kun elementti saa kohdistuksen. Toisin kuin selaimenfocustapahtuma, ReactissaonFocustapahtuma kuplii.onFocusCapture: VersioonFocus:sta joka suoritetaan nappausvaiheessa.onGotPointerCapture:PointerEventkäsittelijäfunktio. Suoritetaan kun elementti ohjelmallisesti nappaa osoittimen.onGotPointerCaptureCapture: VersioonGotPointerCapture:sta joka suoritetaan nappausvaiheessa.onKeyDown:KeyboardEventkäsittelijäfunktio. Suoritetaan kun näppäintä painetaan.onKeyDownCapture: VersioonKeyDown:sta joka suoritetaan nappausvaiheessa.onKeyPress:KeyboardEventkäsittelijäfunktio. Vanhentunut. Käytä sen sijaanonKeyDowntaionBeforeInput.onKeyPressCapture: VersioonKeyPress:sta joka suoritetaan nappausvaiheessa.onKeyUp:KeyboardEventkäsittelijäfunktio. Suoritetaan kun näppäin vapautetaan.onKeyUpCapture: VersioonKeyUp:sta joka suoritetaan nappausvaiheessa.onLostPointerCapture:PointerEventkäsittelijäfunktio. Suoritetaan kun elementti lopettaa osoittimen nappaamisen.onLostPointerCaptureCapture: VersioonLostPointerCapture:sta joka suoritetaan nappausvaiheessa.onMouseDown:MouseEventkäsittelijäfunktio. Suoritetaan kun osoitin painetaan alas.onMouseDownCapture: VersioonMouseDown:sta joka suoritetaan nappausvaiheessa.onMouseEnter:MouseEventkäsittelijäfunktio. Suoritetaan kun osoitin liikkuu elementin sisään. Ei ole nappausvaihetta. Sen sijaan,onMouseLeavejaonMouseEnterleviävät elementistä josta poistutaan elementtiin johon tullaan.onMouseLeave:MouseEventkäsittelijäfunktio. Suoritetaan kun osoitin liikkuu elementin ulkopuolelle. Ei ole nappausvaihetta. Sen sijaan,onMouseLeavejaonMouseEnterleviävät elementistä josta poistutaan elementtiin johon tullaan.onMouseMove:MouseEventkäsittelijäfunktio. Suoritetaan osoittimen koordinaatit muuttuvat.onMouseMoveCapture: VersioonMouseMove:sta joka suoritetaan nappausvaiheessa.onMouseOut:MouseEventkäsittelijäfunktio. Suoritetaan kun osoitin liikkuu elementin ulkopuolelle, tai jos se liikkuu lapsielementtiin.onMouseOutCapture: VersioonMouseOut:sta joka suoritetaan nappausvaiheessa.onMouseUp:MouseEventkäsittelijäfunktio. Suoritetaan kun osoitin vapautetaan.onMouseUpCapture: VersioonMouseUp:sta joka suoritetaan nappausvaiheessa.onPointerCancel:PointerEventkäsittelijäfunktio. Suoritetaan kun selain peruuttaa osoittimen interaktion.onPointerCancelCapture: VersioonPointerCancel:sta joka suoritetaan nappausvaiheessa.onPointerDown:PointerEventkäsittelijäfunktio. Suoritetaan kun osoitin aktivoituu.onPointerDownCapture: VersioonPointerDown:sta joka suoritetaan nappausvaiheessa.onPointerEnter:PointerEventkäsittelijäfunktio. Suoritetaan kun osoitin liikkuu elementin sisään. Ei ole nappausvaihetta. Sen sijaan,onPointerLeavejaonPointerEnterleviävät elementistä josta poistutaan elementtiin johon tullaan.onPointerLeave:PointerEventkäsittelijäfunktio. Suoritetaan kun osoitin liikkuu elementin ulkopuolelle. Ei ole nappausvaihetta. Sen sijaan,onPointerLeavejaonPointerEnterleviävät elementistä josta poistutaan elementtiin johon tullaan.onPointerMove:PointerEventkäsittelijäfunktio. Suoritetaan kun osoittimen koordinaatit muuttuvat.onPointerMoveCapture: VersioonPointerMove:sta joka suoritetaan nappausvaiheessa.onPointerOut:PointerEventkäsittelijäfunktio. Suoritetaan kun osoitin liikkuu elementin ulkopuolelle, jos osoittimen interaktio peruutetaan, ja muutamista muista syistä.onPointerOutCapture: VersioonPointerOut:sta joka suoritetaan nappausvaiheessa.onPointerUp:PointerEventkäsittelijäfunktio. Suoritetaan kun osoitin ei ole enää aktiivinen.onPointerUpCapture: VersioonPointerUp:sta joka suoritetaan nappausvaiheessa.onPaste:ClipboardEventkäsittelijäfunktio. Suoritetaan kun käyttäjä yrittää liittää jotain leikepöydältä.onPasteCapture: VersioonPaste:sta joka suoritetaan nappausvaiheessa.onScroll:Eventkäsittelijäfunktio. Suoritetaan kun elementtiä on skrollattu. Tämä tapahtuma ei kupli.onScrollCapture: VersioonScroll:sta joka suoritetaan nappausvaiheessa.onSelect:Eventkäsittelijäfunktio. Suoritetaan kun valinta muuttuu muokattavassa elementissä kuten inputissa. React laajentaaonSelecttapahtuman toimimaan myöscontentEditable={true}elementeille. Lisäksi, React laajentaa sen suorittumaan tyhjälle valinnalle ja muokkauksille (jotka voivat vaikuttaa valintaan).onSelectCapture: VersioonSelect:sta joka suoritetaan nappausvaiheessa.onTouchCancel:TouchEventkäsittelijäfunktio. Suoritetaan kun selain peruuttaa kosketus interaktion.onTouchCancelCapture: VersioonTouchCancel:sta joka suoritetaan nappausvaiheessa.onTouchEnd:TouchEventkäsittelijäfunktio. Suoritetaan kun yksi tai useampi kosketuspiste poistetaan.onTouchEndCapture: VersioonTouchEnd:sta joka suoritetaan nappausvaiheessa.onTouchMove:TouchEventkäsittelijäfunktio. Suoritetaan kun yksi tai useampi kosketuspiste liikkuu.onTouchMoveCapture: VersioonTouchMove:sta joka suoritetaan nappausvaiheessa.onTouchStart:TouchEventkäsittelijäfunktio. Suoritetaan kun yksi tai useampi kosketuspiste asetetaan.onTouchStartCapture: VersioonTouchStart:sta joka suoritetaan nappausvaiheessa.onTransitionEnd:TransitionEventkäsittelijäfunktio. Suoritetaan kun CSS siirtymä päättyy.onTransitionEndCapture: VersioonTransitionEnd:sta joka suoritetaan nappausvaiheessa.onWheel:WheelEventkäsittelijäfunktio. Suoritetaan kun käyttäjä pyörittää rullaa.onWheelCapture: VersioonWheel:sta joka suoritetaan nappausvaiheessa.role: Merkkijono. Määrittää elementin roolin selkeästi avustaville teknologioille.slot: Merkkijono. Määrittää slotin nimen kun käytetään shadow DOM:ia. Reactissa, vastaava tapahtuu yleensä välittämällä JSX propseina, esimerkiksi<Layout left={<Sidebar />} right={<Content />} />.spellCheck: Totuusarvo tai null. Jos asetettutruetaifalse, mahdollistaa tai estää oikeinkirjoituksen tarkistuksen.tabIndex: Numero. Ylikirjoittaa oletus sarkain -näppäimen käyttäytymisen. Vältä käyttämästä arvoja jotka eivät ole-1ja0.title: Merkkijono. Määrittää työkaluvihjeen tekstin elementille.translate: Joko'yes'tai'no'.'no'estää elementin sisällön kääntämisen.
Voit myös välittää omia attribuutteja propseina, esimerkiksi mycustomprop="someValue". Tämä voi olla hyödyllistä kun integroit kolmannen osapuolen kirjastojen kanssa. Oma attribuutin nimi tulee olla pienillä kirjaimilla ja ei saa alkaa on:lla. Arvo muutetaan merkkijonoksi. Jos välität null tai undefined, oma attribuutti poistetaan.
Nämä tapahtumat suoritetaan vain <form> elementeille:
onReset:Eventkäsittelijäfunktio. Suoritetaan kun lomake nollataan.onResetCapture: VersioonReset:sta joka suoritetaan nappausvaiheessa.onSubmit:Eventkäsittelijäfunktio. Suoritetaan kun lomake lähetetään.onSubmitCapture: VersioonSubmit:sta joka suoritetaan nappausvaiheessa.
Nämä tapahtumat suoritetaan vain <dialog> elementeille. Toisin kuin selaimen tapahtumat, ne kuplivat Reactissa:
onCancel:Eventkäsittelijäfunktio. Suoritetaan kun käyttäjä yrittää sulkea dialogin.onCancelCapture: VersioonCancel:sta joka suoritetaan nappausvaiheessa.onClose:Eventkäsittelijäfunktio. Suoritetaan kun dialogi on suljettu.onCloseCapture: VersioonClose:sta joka suoritetaan nappausvaiheessa.
Nämä tapahtumat suoritetaan vain <details> elementeille. Toisin kuin selaimen tapahtumat, ne kuplivat Reactissa:
onToggle:Eventkäsittelijäfunktio. Suoritetaan kun käyttäjä vaihtaa tilaa.onToggleCapture: VersioonToggle:sta joka suoritetaan nappausvaiheessa.
Nämä tapahtumat suoritetaan <img>, <iframe>, <object>, <embed>, <link>, ja SVG <image> elementeille. Toisin kuin selaimen tapahtumat, ne kuplivat Reactissa:
onLoad:Eventkäsittelijäfunktio. Suoritetaan kun resurssi on ladattu.onLoadCapture: VersioonLoad:sta joka suoritetaan nappausvaiheessa.onError:Eventkäsittelijäfunktio. Suoritetaan kun resurssia ei voitu ladata.onErrorCapture: VersioonError:sta joka suoritetaan nappausvaiheessa.
Nämä tapahtumat suoritetaan resursseille kuten <audio> ja <video>. Toisin kuin selaimen tapahtumat, ne kuplivat Reactissa:
onAbort:Eventkäsittelijäfunktio. Suoritetaan kun resurssia ei voitu ladata, mutta ei virheen takia.onAbortCapture: VersioonAbort:sta joka suoritetaan nappausvaiheessa.onCanPlay:Eventkäsittelijäfunktio. Suoritetaan kun dataa on tarpeeksi toistoa varten, mutta ei tarpeeksi toistamiseen loppuun asti ilman puskurointia.onCanPlayCapture: VersioonCanPlay:sta joka suoritetaan nappausvaiheessa.onCanPlayThrough:Eventkäsittelijäfunktio. Suoritetaan kun dataa on tarpeeksi toistoa varten, ja todennäköisesti mahdollista aloittaa toisto ilman puskurointia loppuun asti.onCanPlayThroughCapture: VersioonCanPlayThrough:sta joka suoritetaan nappausvaiheessa.onDurationChange:Eventkäsittelijäfunktio. Suoritetaan kun median kesto on päivitetty.onDurationChangeCapture: VersioonDurationChange:sta joka suoritetaan nappausvaiheessa.onEmptied:Eventkäsittelijäfunktio. Suoritetaan kun media on tyhjentynyt.onEmptiedCapture: VersioonEmptied:sta joka suoritetaan nappausvaiheessa.onEncrypted:Eventkäsittelijäfunktio. Suoritetaan kun selain kohtaa salattua mediaa.onEncryptedCapture: VersioonEncrypted:sta joka suoritetaan nappausvaiheessa.onEnded:Eventkäsittelijäfunktio. Suoritetaan kun toisto loppuu koska mitään ei ole jäljellä toistettavaksi.onEndedCapture: VersioonEnded:sta joka suoritetaan nappausvaiheessa.onError:Eventkäsittelijäfunktio. Suoritetaan kun resurssia ei voitu ladata.onErrorCapture: VersioonError:sta joka suoritetaan nappausvaiheessa.onLoadedData:Eventkäsittelijäfunktio. Suoritetaan kun nykyinen toistokehys on ladattu.onLoadedDataCapture: VersioonLoadedData:sta joka suoritetaan nappausvaiheessa.onLoadedMetadata:Eventkäsittelijäfunktio. Suoritetaan kun metadata on ladattu.onLoadedMetadataCapture: VersioonLoadedMetadata:sta joka suoritetaan nappausvaiheessa.onLoadStart:Eventkäsittelijäfunktio. Suoritetaan kun selain aloittaa resurssin lataamisen.onLoadStartCapture: VersioonLoadStart:sta joka suoritetaan nappausvaiheessa.onPause:Eventkäsittelijäfunktio. Suoritetaan kun media on tauolla.onPauseCapture: VersioonPause:sta joka suoritetaan nappausvaiheessa.onPlay:Eventkäsittelijäfunktio. Suoritetaan kun media ei ole enää tauolla.onPlayCapture: VersioonPlay:sta joka suoritetaan nappausvaiheessa.onPlaying:Eventkäsittelijäfunktio. Suoritetaan kun media alkaa tai jatkaa toistoa.onPlayingCapture: VersioonPlaying:sta joka suoritetaan nappausvaiheessa.onProgress:Eventkäsittelijäfunktio. Suoritetaan säännöllisesti kun resurssiä ladataan.onProgressCapture: VersioonProgress:sta joka suoritetaan nappausvaiheessa.onRateChange:Eventkäsittelijäfunktio. Suoritetaan kun toistonopeus muuttuu.onRateChangeCapture: VersioonRateChange:sta joka suoritetaan nappausvaiheessa.onResize:Eventkäsittelijäfunktio. Suoritetaan kun videon koko muuttuu.onResizeCapture: VersioonResize:sta joka suoritetaan nappausvaiheessa.onSeeked:Eventkäsittelijäfunktio. Suoritetaan kun siirtymisoperaatio on valmis.onSeekedCapture: VersioonSeeked:sta joka suoritetaan nappausvaiheessa.onSeeking:Eventkäsittelijäfunktio. Suoritetaan kun siirtymisoperaatio alkaa.onSeekingCapture: VersioonSeeking:sta joka suoritetaan nappausvaiheessa.onStalled:Eventkäsittelijäfunktio. Suoritetaan kun selain odottaa dataa mutta se ei lataudu.onStalledCapture: VersioonStalled:sta joka suoritetaan nappausvaiheessa.onSuspend:Eventkäsittelijäfunktio. Suoritetaan kun resurssin lataus keskeytyy.onSuspendCapture: VersioonSuspend:sta joka suoritetaan nappausvaiheessa.onTimeUpdate:Eventkäsittelijäfunktio. Suoritetaan kun nykyinen toistoaika päivittyy.onTimeUpdateCapture: VersioonTimeUpdate:sta joka suoritetaan nappausvaiheessa.onVolumeChange:Eventkäsittelijäfunktio. Suoritetaan kun äänenvoimakkuus on muuttunut.onVolumeChangeCapture: VersioonVolumeChange:sta joka suoritetaan nappausvaiheessa.onWaiting:Eventkäsittelijäfunktio. Suoritetaan kun toisto on pysähtynyt väliaikaisesti data puutteen takia.onWaitingCapture: VersioonWaiting:sta joka suoritetaan nappausvaiheessa.
Rajoitukset
- Et voi välittää sekä
childrenettädangerouslySetInnerHTMLsamaan aikaan. - Jotkin tapahtumat (kuten
onAbortjaonLoad) eivät kupli selaimessa, mutta kuplivat Reactissa.
ref callback-funktio
Ref olion sijaan (kuten useRef palauttama), voit välittää funktion ref attribuuttiin.
<div ref={(node) => console.log(node)} />Esimerkki ref callbackin käytöstä.
Kun <div> DOM noodi lisätään näytölle, React kutsuu ref callbackia DOM node argumentilla. Kun <div> DOM noodi poistetaan, React kutsuu ref callbackia null argumentilla.
React kutsuu myös ref callbackia aina kun välität erilaisen ref callbackin. Yllä olevassa esimerkissä, (node) => { ... } on eri funktio joka renderöinnillä. Kun komponenttisi renderöidään uudelleen, edellinen funktio kutsutaan null argumentilla, ja seuraava funktio kutsutaan DOM nodella.
Parametrit
node: DOM noodi tainull. React välittää DOM noden kun ref liitetään, janullkun ref irrotetaan. Ellei välitä samaa funktiotarefcallbackiin joka renderöinnillä, callback irrotetaan ja liitetään uudelleen jokaisella komponentin renderöinnillä.
Palautukset
Ei palauta mitään ref callbackista.
React tapahtumaolio
Tapahtumakäsittelijäsi vastaanottaa React tapahtumaolion. Sitä kutsutaan myös joskus “synteettiseksi tapahtumaksi”.
<button onClick={e => {
console.log(e); // React tapahtumaolio
}} />Se noudattaa samaa standardia kuin taustalla olevat DOM tapahtumat, mutta korjaa joitain selaimen epäjohdonmukaisuuksia.
Jotkin React tapahtumat eivät mäppäydy suoraan selaimen alkuperäisiin tapahtumiin. Esimerkiksi onMouseLeave, e.nativeEvent osoittaa mouseout tapahtumaan. Tämä mäppäys ei ole osa julkista API:a ja saattaa muuttua tulevaisuudessa. Jos tarvitset taustalla olevan selaimen tapahtuman jostain syystä, lue se e.nativeEvent kautta.
Ominaisuudet
React tapahtumaolio toteuttaa joitain standardin Event ominaisuuksia:
bubbles: Totuusarvo. Palauttaa kupliiko tapahtuma DOMin läpi.cancelable: Totuusarvo. Palauttaa voiko tapahtuman peruuttaa.currentTarget: DOM noodi. Palauttaa noodin johon nykyinen käsittelijä on liitetty React puussa.defaultPrevented: Totuusarvo. Palauttaa onkopreventDefaultkutsuttu.eventPhase: Numero. Palauttaa missä vaiheessa tapahtuma on tällä hetkellä.isTrusted: Totuusarvo. Palauttaa onko tapahtuma käyttäjän aloittama.target: DOM noodi. Palauttaa noodin jossa tapahtuma on tapahtunut (joka voi olla kaukainen lapsi).timeStamp: Numero. Palauttaa ajan jolloin tapahtuma tapahtui.
Lisäksi, React tapahtumaoliot tarjoavat nämä ominaisuudet:
nativeEvent: DOMEvent. Alkuperäinen selaimen tapahtumaolio.
Metodit
React tapahtumaolio toteuttaa joitain standardin Event metodeista:
preventDefault(): Estää tapahtuman oletustoiminnon.stopPropagation(): Estää tapahtuman kuplimisen React puussa.
Lisäksi, React tapahtumaoliot tarjoavat nämä metodit:
isDefaultPrevented(): Palauttaa totuusarvon joka kertoo onkopreventDefaultkutsuttu.isPropagationStopped(): Palauttaa totuusarvon joka kertoo onkostopPropagationkutsuttu.persist(): Ei käytetä React DOMin kanssa. React Nativella, kutsu tätä lukeaksesi tapahtuman ominaisuudet tapahtuman jälkeen.isPersistent(): Ei käytetä React DOMin kanssa. React Nativella, palauttaa onkopersistkutsuttu.
Rajoitukset
currentTarget,eventPhase,target, jatypearvot heijastaa arvoja, joita React koodisi olettaa. Taustalla, React liittää tapahtumakäsittelijät juureen, mutta tätä ei heijasteta React tapahtumaolioissa. Esimerkiksi,e.currentTargetei välttämättä ole sama kuin taustalla olevae.nativeEvent.currentTarget. Polyfillatuissa tapahtumissa,e.type(React tapahtuman tyyppi) voi erotae.nativeEvent.type(taustalla oleva tyyppi).
AnimationEvent käsittelijäfunktio
Tapahtumakäsittelijätyyppi CSS animaatioiden -tapahtumiin.
<div
onAnimationStart={e => console.log('onAnimationStart')}
onAnimationIteration={e => console.log('onAnimationIteration')}
onAnimationEnd={e => console.log('onAnimationEnd')}
/>Parametrit
e: React tapahtumaolio näillä ylimääräisilläAnimationEventominaisuuksilla:
ClipboardEvent käsittelijäfunktio
Tapahtumakäsittelijätyyppi [Clipboard API] tapahtumiin.
<input
onCopy={e => console.log('onCopy')}
onCut={e => console.log('onCut')}
onPaste={e => console.log('onPaste')}
/>Parametrit
-
e: React tapahtumaolio näillä ylimääräisilläClipboardEventominaisuuksilla:
CompositionEvent käsittelijäfunktio
Tapahtumakäsittelijätyyppi syöttömenetelmän editorin (IME) tapahtumiin.
<input
onCompositionStart={e => console.log('onCompositionStart')}
onCompositionUpdate={e => console.log('onCompositionUpdate')}
onCompositionEnd={e => console.log('onCompositionEnd')}
/>Parametrit
e: React tapahtumaolio näillä ylimääräisilläCompositionEventominaisuuksilla:
DragEvent käsittelijäfunktio
Tapahtumakäisttelijätyyppi HTML Drag and Drop API tapahtumiin.
<>
<div
draggable={true}
onDragStart={e => console.log('onDragStart')}
onDragEnd={e => console.log('onDragEnd')}
>
Drag lähde
</div>
<div
onDragEnter={e => console.log('onDragEnter')}
onDragLeave={e => console.log('onDragLeave')}
onDragOver={e => { e.preventDefault(); console.log('onDragOver'); }}
onDrop={e => console.log('onDrop')}
>
Drop kohde
</div>
</>Parametrit
-
e: React tapahtumaolio näillä ylimääräisilläDragEventominaisuuksilla:Sisältää myös perityt
MouseEventominaisuudet:altKeybuttonbuttonsctrlKeyclientXclientYgetModifierState(key)metaKeymovementXmovementYpageXpageYrelatedTargetscreenXscreenYshiftKey
Sisältää myös perityt
UIEventominaisuudet:
FocusEvent käsittelijäfunktio
Tapahtumakäsittelijätyyppi kohdistumisen tapahtumiin.
<input
onFocus={e => console.log('onFocus')}
onBlur={e => console.log('onBlur')}
/>Parametrit
-
e: React tapahtumaolio näillä ylimääräisilläFocusEventominaisuuksilla:Sisältää myös perityt
UIEventominaisuudet:
Event käsittelijäfunktio
Tapahtumakäsittelijätyyppi yleisiin tapahtumiin.
Parametrit
e: React tapahtumaolio ilman ylimääräisiä ominaisuuksia.
InputEvent käsittelijäfunktio
Tapahtumakäsittelijätyyppi onBeforeInput tapahtumalle.
<input onBeforeInput={e => console.log('onBeforeInput')} />Parametrit
e: React tapahtumaolio näillä ylimääräisilläInputEventominaisuuksilla:
KeyboardEvent käsittelijäfunktio
Tapahtumakäsittelijätyyppi näppäimistötapahtumiin.
<input
onKeyDown={e => console.log('onKeyDown')}
onKeyUp={e => console.log('onKeyUp')}
/>Parametrit
-
e: React tapahtumaolio näillä ylimääräisilläKeyboardEventominaisuuksilla:altKeycharCodecodectrlKeygetModifierState(key)keykeyCodelocalemetaKeylocationrepeatshiftKeywhich
Sisältää myös perityt
UIEventominaisuudet:
MouseEvent käsittelijäfunktio
Tapahtumakäsittelijätyyppi hiiritapahtumiin.
<div
onClick={e => console.log('onClick')}
onMouseEnter={e => console.log('onMouseEnter')}
onMouseOver={e => console.log('onMouseOver')}
onMouseDown={e => console.log('onMouseDown')}
onMouseUp={e => console.log('onMouseUp')}
onMouseLeave={e => console.log('onMouseLeave')}
/>Parametrit
-
e: React tapahtumaolio näillä ylimääräisilläMouseEventominaisuuksilla:altKeybuttonbuttonsctrlKeyclientXclientYgetModifierState(key)metaKeymovementXmovementYpageXpageYrelatedTargetscreenXscreenYshiftKey
Sisältää myös perityt
UIEventominaisuudet:
PointerEvent käsittelijäfunktio
Tapahtumakäisttelijätyyppi osoitintapahtumiin.
<div
onPointerEnter={e => console.log('onPointerEnter')}
onPointerMove={e => console.log('onPointerMove')}
onPointerDown={e => console.log('onPointerDown')}
onPointerUp={e => console.log('onPointerUp')}
onPointerLeave={e => console.log('onPointerLeave')}
/>Parametrit
-
e: React tapahtumaolio näillä ylimääräisilläPointerEventominaisuuksilla:Sisältää myös perityt
MouseEventominaisuudet:altKeybuttonbuttonsctrlKeyclientXclientYgetModifierState(key)metaKeymovementXmovementYpageXpageYrelatedTargetscreenXscreenYshiftKey
Sisältää myös perityt
UIEventominaisuudet:
TouchEvent käsittelijäfunktio
Tapahtumakäsittelijätyyppi kosketustapahtumiin.
<div
onTouchStart={e => console.log('onTouchStart')}
onTouchMove={e => console.log('onTouchMove')}
onTouchEnd={e => console.log('onTouchEnd')}
onTouchCancel={e => console.log('onTouchCancel')}
/>Parametrit
-
e: React tapahtumaolio näillä ylimääräisilläTouchEventominaisuuksilla:Sisältää myös perityt
UIEventominaisuudet:
TransitionEvent käsittelijäfunktio
Tapahtumakäsittelijätyyppi CSS siirtymätapahtumiin.
<div
onTransitionEnd={e => console.log('onTransitionEnd')}
/>Parametrit
e: React tapahtumaolio näillä ylimääräisilläTransitionEventominaisuuksilla:
UIEvent käsittelijäfunktio
Tapahtumakäsittelijätyyppi yleisiin käyttöliittymätapahtumiin.
<div
onScroll={e => console.log('onScroll')}
/>Parametrit
e: React tapahtumaolio näillä ylimääräisilläUIEventominaisuuksilla:
WheelEvent käsittelijäfunktio
Tapahtumakäsittelijätyyppi onWheel tapahtumalle.
<div
onScroll={e => console.log('onScroll')}
/>Parametrit
-
e: React tapahtumaolio näillä ylimääräisilläWheelEventominaisuuksilla:Sisältää myös perityt
MouseEventominaisuudet:altKeybuttonbuttonsctrlKeyclientXclientYgetModifierState(key)metaKeymovementXmovementYpageXpageYrelatedTargetscreenXscreenYshiftKey
Sisältää myös perityt
UIEventominaisuudet:
Käyttö
CSS tyylien käyttö
In React, you specify a CSS class with className. It works like the class attribute in HTML:
<img className="avatar" />Then you write the CSS rules for it in a separate CSS file:
/* In your CSS */
.avatar {
border-radius: 50%;
}React does not prescribe how you add CSS files. In the simplest case, you’ll add a <link> tag to your HTML. If you use a build tool or a framework, consult its documentation to learn how to add a CSS file to your project.
Sometimes, the style values depend on data. Use the style attribute to pass some styles dynamically:
<img
className="avatar"
style={{
width: user.imageSize,
height: user.imageSize
}}
/>In the above example, style={{}} is not a special syntax, but a regular {} object inside the style={ } JSX curly braces. We recommend only using the style attribute when your styles depend on JavaScript variables.
export default function Avatar({ user }) { return ( <img src={user.imageUrl} alt={'Photo of ' + user.name} className="avatar" style={{ width: user.imageSize, height: user.imageSize }} /> ); }
Syväsukellus
To apply CSS classes conditionally, you need to produce the className string yourself using JavaScript.
For example, className={'row ' + (isSelected ? 'selected': '')} will produce either className="row" or className="row selected" depending on whether isSelected is true.
To make this more readable, you can use a tiny helper library like classnames:
import cn from 'classnames';
function Row({ isSelected }) {
return (
<div className={cn('row', isSelected && 'selected')}>
...
</div>
);
}It is especially convenient if you have multiple conditional classes:
import cn from 'classnames';
function Row({ isSelected, size }) {
return (
<div className={cn('row', {
selected: isSelected,
large: size === 'large',
small: size === 'small',
})}>
...
</div>
);
}DOM elemetin manipuolinti refillä
Sometimes, you’ll need to get the browser DOM node associated with a tag in JSX. For example, if you want to focus an <input> when a button is clicked, you need to call focus() on the browser <input> DOM node.
To obtain the browser DOM node for a tag, declare a ref and pass it as the ref attribute to that tag:
import { useRef } from 'react';
export default function Form() {
const inputRef = useRef(null);
// ...
return (
<input ref={inputRef} />
// ...React will put the DOM node into inputRef.current after it’s been rendered to the screen.
import { useRef } from 'react'; export default function Form() { const inputRef = useRef(null); function handleClick() { inputRef.current.focus(); } return ( <> <input ref={inputRef} /> <button onClick={handleClick}> Focus the input </button> </> ); }
Read more about manipulating DOM with refs and check out more examples.
For more advanced use cases, the ref attribute also accepts a callback function.
Sisäisen HTML sisällön asettaminen vaarallisesti
You can pass a raw HTML string to an element like so:
const markup = { __html: '<p>some raw html</p>' };
return <div dangerouslySetInnerHTML={markup} />;This is dangerous. As with the underlying DOM innerHTML property, you must exercise extreme caution! Unless the markup is coming from a completely trusted source, it is trivial to introduce an XSS vulnerability this way.
For example, if you use a Markdown library that converts Markdown to HTML, you trust that its parser doesn’t contain bugs, and the user only sees their own input, you can display the resulting HTML like this:
import { Remarkable } from 'remarkable'; const md = new Remarkable(); function renderMarkdownToHTML(markdown) { // This is ONLY safe because the output HTML // is shown to the same user, and because you // trust this Markdown parser to not have bugs. const renderedHTML = md.render(markdown); return {__html: renderedHTML}; } export default function MarkdownPreview({ markdown }) { const markup = renderMarkdownToHTML(markdown); return <div dangerouslySetInnerHTML={markup} />; }
To see why rendering arbitrary HTML is dangerous, replace the code above with this:
const post = {
// Imagine this content is stored in the database.
content: `<img src="" onerror='alert("you were hacked")'>`
};
export default function MarkdownPreview() {
// 🔴 SECURITY HOLE: passing untrusted input to dangerouslySetInnerHTML
const markup = { __html: post.content };
return <div dangerouslySetInnerHTML={markup} />;
}The code embedded in the HTML will run. A hacker could use this security hole to steal user information or to perform actions on their behalf. Only use dangerouslySetInnerHTML with trusted and sanitized data.
Hiiren tapahtumien käsitteleminen
This example shows some common mouse events and when they fire.
export default function MouseExample() { return ( <div onMouseEnter={e => console.log('onMouseEnter (parent)')} onMouseLeave={e => console.log('onMouseLeave (parent)')} > <button onClick={e => console.log('onClick (first button)')} onMouseDown={e => console.log('onMouseDown (first button)')} onMouseEnter={e => console.log('onMouseEnter (first button)')} onMouseLeave={e => console.log('onMouseLeave (first button)')} onMouseOver={e => console.log('onMouseOver (first button)')} onMouseUp={e => console.log('onMouseUp (first button)')} > First button </button> <button onClick={e => console.log('onClick (second button)')} onMouseDown={e => console.log('onMouseDown (second button)')} onMouseEnter={e => console.log('onMouseEnter (second button)')} onMouseLeave={e => console.log('onMouseLeave (second button)')} onMouseOver={e => console.log('onMouseOver (second button)')} onMouseUp={e => console.log('onMouseUp (second button)')} > Second button </button> </div> ); }
Osoittimen tapahtumien käsitteleminen
This example shows some common pointer events and when they fire.
export default function PointerExample() { return ( <div onPointerEnter={e => console.log('onPointerEnter (parent)')} onPointerLeave={e => console.log('onPointerLeave (parent)')} style={{ padding: 20, backgroundColor: '#ddd' }} > <div onPointerDown={e => console.log('onPointerDown (first child)')} onPointerEnter={e => console.log('onPointerEnter (first child)')} onPointerLeave={e => console.log('onPointerLeave (first child)')} onPointerMove={e => console.log('onPointerMove (first child)')} onPointerUp={e => console.log('onPointerUp (first child)')} style={{ padding: 20, backgroundColor: 'lightyellow' }} > First child </div> <div onPointerDown={e => console.log('onPointerDown (second child)')} onPointerEnter={e => console.log('onPointerEnter (second child)')} onPointerLeave={e => console.log('onPointerLeave (second child)')} onPointerMove={e => console.log('onPointerMove (second child)')} onPointerUp={e => console.log('onPointerUp (second child)')} style={{ padding: 20, backgroundColor: 'lightblue' }} > Second child </div> </div> ); }
Kohdennustapahtumien käsitteleminen
In React, focus events bubble. You can use the currentTarget and relatedTarget to differentiate if the focusing or blurring events originated from outside of the parent element. The example shows how to detect focusing a child, focusing the parent element, and how to detect focus entering or leaving the whole subtree.
export default function FocusExample() { return ( <div tabIndex={1} onFocus={(e) => { if (e.currentTarget === e.target) { console.log('focused parent'); } else { console.log('focused child', e.target.name); } if (!e.currentTarget.contains(e.relatedTarget)) { // Not triggered when swapping focus between children console.log('focus entered parent'); } }} onBlur={(e) => { if (e.currentTarget === e.target) { console.log('unfocused parent'); } else { console.log('unfocused child', e.target.name); } if (!e.currentTarget.contains(e.relatedTarget)) { // Not triggered when swapping focus between children console.log('focus left parent'); } }} > <label> First name: <input name="firstName" /> </label> <label> Last name: <input name="lastName" /> </label> </div> ); }
Näppäimistötapahtumien käsitteleminen
This example shows some common keyboard events and when they fire.
export default function KeyboardExample() { return ( <label> First name: <input name="firstName" onKeyDown={e => console.log('onKeyDown:', e.key, e.code)} onKeyUp={e => console.log('onKeyUp:', e.key, e.code)} /> </label> ); }