Yleiset komponentit (esim <div>)
Kaikki selaimeen sisäänrakennetut komponentit, kuten <div>
, tukevat joitakin yleisiä propseja ja tapahtumia.
- Viite
- Yleiset komponentit (kuten
<div>
) ref
callback-funktio- React tapahtumaolio
AnimationEvent
käsittelijäfunktioClipboardEvent
käsittelijäfunktioCompositionEvent
käsittelijäfunktioDragEvent
käsittelijäfunktioFocusEvent
käsittelijäfunktioEvent
käsittelijäfunktioInputEvent
käsittelijäfunktioKeyboardEvent
käsittelijäfunktioMouseEvent
käsittelijäfunktioPointerEvent
käsittelijäfunktioTouchEvent
käsittelijäfunktioTransitionEvent
käsittelijäfunktioUIEvent
käsittelijäfunktioWheelEvent
kä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
,undefined
ja totuusarvot, tai taulukko muista React noodeista). Määrittää komponentin sisällön. Kun käytät JSX:ää, määritätchildren
propsin 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 noodininnerHTML
ominaisuuden 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, tairef
kutsufunktio, 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ächildren
ettäcontentEditable={true}
(jotka eivät normaalisti toimi yhdessä). Käytä tätä jos rakennat tekstisyöttökirjastoa joka hallinnoicontentEditable
sisä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 DOMstyle
ominaisuudessa, CSS ominaisuudet tulee kirjoittaacamelCase
muodossa, esimerkiksifontWeight
font-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ääclassName
jastyle
: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 kuinfor
HTML 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
:AnimationEvent
käsittelijäfunktio. Suoritetaan kun CSS animaatio päättyy.onAnimationEndCapture
: VersioonAnimationEnd
:sta joka suoritetaan nappausvaiheessa.onAnimationIteration
:AnimationEvent
käsittelijäfunktio. Suoritetaan kun CSS animaation iteraatio päättyy ja toinen alkaa.onAnimationIterationCapture
: VersioonAnimationIteration
:sta joka suoritetaan nappausvaiheessa.onAnimationStart
:AnimationEvent
käsittelijäfunktio. Suoritetaan kun CSS animaatio alkaa.onAnimationStartCapture
:onAnimationStart
, mutta suoritetaan nappausvaiheessa.onAuxClick
:MouseEvent
käsittelijäfunktio. Suoritetaan kun ei-pääpainiketta painetaan.onAuxClickCapture
: VersioonAuxClick
:sta joka suoritetaan nappausvaiheessa.onBeforeInput
:InputEvent
käsittelijäfunktio. Suoritetaan ennen muokattavan elementin arvon muuttamista. React ei vielä käytä selaimenbeforeinput
tapahtumaa, vaan yrittää polyfillata sen käyttäen muita eventtejä.onBeforeInputCapture
: VersioonBeforeInput
:sta joka suoritetaan nappausvaiheessa.onBlur
:FocusEvent
käsittelijäfunktio. Suoritetaan kun elementti menettää kohdistuksen. Toisin kuin selaimenblur
tapahtuma, ReactissaonBlur
tapahtuma kuplii.onBlurCapture
: VersioonBlur
:sta joka suoritetaan nappausvaiheessa.onClick
:MouseEvent
käsittelijäfunktio. Suoritetaan kun pääpainiketta painetaan osoittimella.onClickCapture
: VersioonClick
:sta joka suoritetaan nappausvaiheessa.onCompositionStart
:CompositionEvent
käsittelijäfunktio. Suoritetaan kun syöttömenetelmän editori aloittaa uuden kompositioistunnon.onCompositionStartCapture
: VersioonCompositionStart
:sta joka suoritetaan nappausvaiheessa.onCompositionEnd
:CompositionEvent
käsittelijäfunktio. Suoritetaan kun syöttömenetelmän editori lopettaa tai peruuttaa kompositioistunnon.onCompositionEndCapture
: VersioonCompositionEnd
:sta joka suoritetaan nappausvaiheessa.onCompositionUpdate
:CompositionEvent
käsittelijäfunktio. Suoritetaan kun syöttömenetelmän editori vastaanottaa uuden merkin.onCompositionUpdateCapture
: VersioonCompositionUpdate
:sta joka suoritetaan nappausvaiheessa.onContextMenu
:MouseEvent
käsittelijäfunktio. Suoritetaan kun käyttäjä yrittää avata kontekstivalikon.onContextMenuCapture
: VersioonContextMenu
:sta joka suoritetaan nappausvaiheessa.onCopy
:ClipboardEvent
käsittelijäfunktio. Suoritetaan kun käyttäjä yrittää kopioida jotain leikepöydälle.onCopyCapture
: VersioonCopy
:sta joka suoritetaan nappausvaiheessa.onCut
:ClipboardEvent
käsittelijäfunktio. Suoritetaan kun käyttäjä yrittää leikata jotain leikepöydälle.onCutCapture
: VersioonCut
:sta joka suoritetaan nappausvaiheessa.onDoubleClick
:MouseEvent
käsittelijäfunktio. Suoritetaan kun käyttäjä painaa pääpainiketta kahdesti. Vastaa selaimendblclick
tapahtumaa.onDoubleClickCapture
: VersioonDoubleClick
:sta joka suoritetaan nappausvaiheessa.onDrag
:DragEvent
käsittelijäfunktio. Suoritetaan kun käyttäjä raahaa jotain.onDragCapture
: VersioonDrag
:sta joka suoritetaan nappausvaiheessa.onDragEnd
:DragEvent
käsittelijäfunktio. Suoritetaan kun käyttäjä lopettaa raahaamisen.onDragEndCapture
: VersioonDragEnd
:sta joka suoritetaan nappausvaiheessa.onDragEnter
:DragEvent
käsittelijäfunktio. Suoritetaan kun raahattu sisältö tulee pätevän pudotuskohteen sisään.onDragEnterCapture
: VersioonDragEnter
:sta joka suoritetaan nappausvaiheessa.onDragOver
:DragEvent
kä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
:DragEvent
käsittelijäfunktio. Suoritetaan kun käyttäjä aloittaa raahaamisen.onDragStartCapture
: VersioonDragStart
:sta joka suoritetaan nappausvaiheessa.onDrop
:DragEvent
käsittelijäfunktio. Suoritetaan kun jotain pudotetaan pätevälle pudotuskohteelle.onDropCapture
: VersioonDrop
:sta joka suoritetaan nappausvaiheessa.onFocus
:FocusEvent
käsittelijäfunktio. Suoritetaan kun elementti saa kohdistuksen. Toisin kuin selaimenfocus
tapahtuma, ReactissaonFocus
tapahtuma kuplii.onFocusCapture
: VersioonFocus
:sta joka suoritetaan nappausvaiheessa.onGotPointerCapture
:PointerEvent
käsittelijäfunktio. Suoritetaan kun elementti ohjelmallisesti nappaa osoittimen.onGotPointerCaptureCapture
: VersioonGotPointerCapture
:sta joka suoritetaan nappausvaiheessa.onKeyDown
:KeyboardEvent
käsittelijäfunktio. Suoritetaan kun näppäintä painetaan.onKeyDownCapture
: VersioonKeyDown
:sta joka suoritetaan nappausvaiheessa.onKeyPress
:KeyboardEvent
käsittelijäfunktio. Vanhentunut. Käytä sen sijaanonKeyDown
taionBeforeInput
.onKeyPressCapture
: VersioonKeyPress
:sta joka suoritetaan nappausvaiheessa.onKeyUp
:KeyboardEvent
käsittelijäfunktio. Suoritetaan kun näppäin vapautetaan.onKeyUpCapture
: VersioonKeyUp
:sta joka suoritetaan nappausvaiheessa.onLostPointerCapture
:PointerEvent
käsittelijäfunktio. Suoritetaan kun elementti lopettaa osoittimen nappaamisen.onLostPointerCaptureCapture
: VersioonLostPointerCapture
:sta joka suoritetaan nappausvaiheessa.onMouseDown
:MouseEvent
käsittelijäfunktio. Suoritetaan kun osoitin painetaan alas.onMouseDownCapture
: VersioonMouseDown
:sta joka suoritetaan nappausvaiheessa.onMouseEnter
:MouseEvent
käsittelijäfunktio. Suoritetaan kun osoitin liikkuu elementin sisään. Ei ole nappausvaihetta. Sen sijaan,onMouseLeave
jaonMouseEnter
leviävät elementistä josta poistutaan elementtiin johon tullaan.onMouseLeave
:MouseEvent
käsittelijäfunktio. Suoritetaan kun osoitin liikkuu elementin ulkopuolelle. Ei ole nappausvaihetta. Sen sijaan,onMouseLeave
jaonMouseEnter
leviävät elementistä josta poistutaan elementtiin johon tullaan.onMouseMove
:MouseEvent
käsittelijäfunktio. Suoritetaan osoittimen koordinaatit muuttuvat.onMouseMoveCapture
: VersioonMouseMove
:sta joka suoritetaan nappausvaiheessa.onMouseOut
:MouseEvent
käsittelijäfunktio. Suoritetaan kun osoitin liikkuu elementin ulkopuolelle, tai jos se liikkuu lapsielementtiin.onMouseOutCapture
: VersioonMouseOut
:sta joka suoritetaan nappausvaiheessa.onMouseUp
:MouseEvent
käsittelijäfunktio. Suoritetaan kun osoitin vapautetaan.onMouseUpCapture
: VersioonMouseUp
:sta joka suoritetaan nappausvaiheessa.onPointerCancel
:PointerEvent
käsittelijäfunktio. Suoritetaan kun selain peruuttaa osoittimen interaktion.onPointerCancelCapture
: VersioonPointerCancel
:sta joka suoritetaan nappausvaiheessa.onPointerDown
:PointerEvent
käsittelijäfunktio. Suoritetaan kun osoitin aktivoituu.onPointerDownCapture
: VersioonPointerDown
:sta joka suoritetaan nappausvaiheessa.onPointerEnter
:PointerEvent
käsittelijäfunktio. Suoritetaan kun osoitin liikkuu elementin sisään. Ei ole nappausvaihetta. Sen sijaan,onPointerLeave
jaonPointerEnter
leviävät elementistä josta poistutaan elementtiin johon tullaan.onPointerLeave
:PointerEvent
käsittelijäfunktio. Suoritetaan kun osoitin liikkuu elementin ulkopuolelle. Ei ole nappausvaihetta. Sen sijaan,onPointerLeave
jaonPointerEnter
leviävät elementistä josta poistutaan elementtiin johon tullaan.onPointerMove
:PointerEvent
käsittelijäfunktio. Suoritetaan kun osoittimen koordinaatit muuttuvat.onPointerMoveCapture
: VersioonPointerMove
:sta joka suoritetaan nappausvaiheessa.onPointerOut
:PointerEvent
käsittelijäfunktio. Suoritetaan kun osoitin liikkuu elementin ulkopuolelle, jos osoittimen interaktio peruutetaan, ja muutamista muista syistä.onPointerOutCapture
: VersioonPointerOut
:sta joka suoritetaan nappausvaiheessa.onPointerUp
:PointerEvent
käsittelijäfunktio. Suoritetaan kun osoitin ei ole enää aktiivinen.onPointerUpCapture
: VersioonPointerUp
:sta joka suoritetaan nappausvaiheessa.onPaste
:ClipboardEvent
käsittelijäfunktio. Suoritetaan kun käyttäjä yrittää liittää jotain leikepöydältä.onPasteCapture
: VersioonPaste
:sta joka suoritetaan nappausvaiheessa.onScroll
:Event
käsittelijäfunktio. Suoritetaan kun elementtiä on skrollattu. Tämä tapahtuma ei kupli.onScrollCapture
: VersioonScroll
:sta joka suoritetaan nappausvaiheessa.onSelect
:Event
käsittelijäfunktio. Suoritetaan kun valinta muuttuu muokattavassa elementissä kuten inputissa. React laajentaaonSelect
tapahtuman 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
:TouchEvent
käsittelijäfunktio. Suoritetaan kun selain peruuttaa kosketus interaktion.onTouchCancelCapture
: VersioonTouchCancel
:sta joka suoritetaan nappausvaiheessa.onTouchEnd
:TouchEvent
käsittelijäfunktio. Suoritetaan kun yksi tai useampi kosketuspiste poistetaan.onTouchEndCapture
: VersioonTouchEnd
:sta joka suoritetaan nappausvaiheessa.onTouchMove
:TouchEvent
käsittelijäfunktio. Suoritetaan kun yksi tai useampi kosketuspiste liikkuu.onTouchMoveCapture
: VersioonTouchMove
:sta joka suoritetaan nappausvaiheessa.onTouchStart
:TouchEvent
käsittelijäfunktio. Suoritetaan kun yksi tai useampi kosketuspiste asetetaan.onTouchStartCapture
: VersioonTouchStart
:sta joka suoritetaan nappausvaiheessa.onTransitionEnd
:TransitionEvent
käsittelijäfunktio. Suoritetaan kun CSS siirtymä päättyy.onTransitionEndCapture
: VersioonTransitionEnd
:sta joka suoritetaan nappausvaiheessa.onWheel
:WheelEvent
kä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 asetettutrue
taifalse
, 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-1
ja0
.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
:Event
käsittelijäfunktio. Suoritetaan kun lomake nollataan.onResetCapture
: VersioonReset
:sta joka suoritetaan nappausvaiheessa.onSubmit
:Event
kä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
:Event
käsittelijäfunktio. Suoritetaan kun käyttäjä yrittää sulkea dialogin.onCancelCapture
: VersioonCancel
:sta joka suoritetaan nappausvaiheessa.onClose
:Event
kä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
:Event
kä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
:Event
käsittelijäfunktio. Suoritetaan kun resurssi on ladattu.onLoadCapture
: VersioonLoad
:sta joka suoritetaan nappausvaiheessa.onError
:Event
kä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
:Event
käsittelijäfunktio. Suoritetaan kun resurssia ei voitu ladata, mutta ei virheen takia.onAbortCapture
: VersioonAbort
:sta joka suoritetaan nappausvaiheessa.onCanPlay
:Event
käsittelijäfunktio. Suoritetaan kun dataa on tarpeeksi toistoa varten, mutta ei tarpeeksi toistamiseen loppuun asti ilman puskurointia.onCanPlayCapture
: VersioonCanPlay
:sta joka suoritetaan nappausvaiheessa.onCanPlayThrough
:Event
kä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
:Event
käsittelijäfunktio. Suoritetaan kun median kesto on päivitetty.onDurationChangeCapture
: VersioonDurationChange
:sta joka suoritetaan nappausvaiheessa.onEmptied
:Event
käsittelijäfunktio. Suoritetaan kun media on tyhjentynyt.onEmptiedCapture
: VersioonEmptied
:sta joka suoritetaan nappausvaiheessa.onEncrypted
:Event
käsittelijäfunktio. Suoritetaan kun selain kohtaa salattua mediaa.onEncryptedCapture
: VersioonEncrypted
:sta joka suoritetaan nappausvaiheessa.onEnded
:Event
käsittelijäfunktio. Suoritetaan kun toisto loppuu koska mitään ei ole jäljellä toistettavaksi.onEndedCapture
: VersioonEnded
:sta joka suoritetaan nappausvaiheessa.onError
:Event
käsittelijäfunktio. Suoritetaan kun resurssia ei voitu ladata.onErrorCapture
: VersioonError
:sta joka suoritetaan nappausvaiheessa.onLoadedData
:Event
käsittelijäfunktio. Suoritetaan kun nykyinen toistokehys on ladattu.onLoadedDataCapture
: VersioonLoadedData
:sta joka suoritetaan nappausvaiheessa.onLoadedMetadata
:Event
käsittelijäfunktio. Suoritetaan kun metadata on ladattu.onLoadedMetadataCapture
: VersioonLoadedMetadata
:sta joka suoritetaan nappausvaiheessa.onLoadStart
:Event
käsittelijäfunktio. Suoritetaan kun selain aloittaa resurssin lataamisen.onLoadStartCapture
: VersioonLoadStart
:sta joka suoritetaan nappausvaiheessa.onPause
:Event
käsittelijäfunktio. Suoritetaan kun media on tauolla.onPauseCapture
: VersioonPause
:sta joka suoritetaan nappausvaiheessa.onPlay
:Event
käsittelijäfunktio. Suoritetaan kun media ei ole enää tauolla.onPlayCapture
: VersioonPlay
:sta joka suoritetaan nappausvaiheessa.onPlaying
:Event
käsittelijäfunktio. Suoritetaan kun media alkaa tai jatkaa toistoa.onPlayingCapture
: VersioonPlaying
:sta joka suoritetaan nappausvaiheessa.onProgress
:Event
käsittelijäfunktio. Suoritetaan säännöllisesti kun resurssiä ladataan.onProgressCapture
: VersioonProgress
:sta joka suoritetaan nappausvaiheessa.onRateChange
:Event
käsittelijäfunktio. Suoritetaan kun toistonopeus muuttuu.onRateChangeCapture
: VersioonRateChange
:sta joka suoritetaan nappausvaiheessa.onResize
:Event
käsittelijäfunktio. Suoritetaan kun videon koko muuttuu.onResizeCapture
: VersioonResize
:sta joka suoritetaan nappausvaiheessa.onSeeked
:Event
käsittelijäfunktio. Suoritetaan kun siirtymisoperaatio on valmis.onSeekedCapture
: VersioonSeeked
:sta joka suoritetaan nappausvaiheessa.onSeeking
:Event
käsittelijäfunktio. Suoritetaan kun siirtymisoperaatio alkaa.onSeekingCapture
: VersioonSeeking
:sta joka suoritetaan nappausvaiheessa.onStalled
:Event
käsittelijäfunktio. Suoritetaan kun selain odottaa dataa mutta se ei lataudu.onStalledCapture
: VersioonStalled
:sta joka suoritetaan nappausvaiheessa.onSuspend
:Event
käsittelijäfunktio. Suoritetaan kun resurssin lataus keskeytyy.onSuspendCapture
: VersioonSuspend
:sta joka suoritetaan nappausvaiheessa.onTimeUpdate
:Event
käsittelijäfunktio. Suoritetaan kun nykyinen toistoaika päivittyy.onTimeUpdateCapture
: VersioonTimeUpdate
:sta joka suoritetaan nappausvaiheessa.onVolumeChange
:Event
käsittelijäfunktio. Suoritetaan kun äänenvoimakkuus on muuttunut.onVolumeChangeCapture
: VersioonVolumeChange
:sta joka suoritetaan nappausvaiheessa.onWaiting
:Event
kä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ä
children
ettädangerouslySetInnerHTML
samaan aikaan. - Jotkin tapahtumat (kuten
onAbort
jaonLoad
) 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, janull
kun ref irrotetaan. Ellei välitä samaa funktiotaref
callbackiin 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 onkopreventDefault
kutsuttu.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 onkopreventDefault
kutsuttu.isPropagationStopped()
: Palauttaa totuusarvon joka kertoo onkostopPropagation
kutsuttu.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 onkopersist
kutsuttu.
Rajoitukset
currentTarget
,eventPhase
,target
, jatype
arvot heijastaa arvoja, joita React koodisi olettaa. Taustalla, React liittää tapahtumakäsittelijät juureen, mutta tätä ei heijasteta React tapahtumaolioissa. Esimerkiksi,e.currentTarget
ei 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äAnimationEvent
ominaisuuksilla:
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äClipboardEvent
ominaisuuksilla:
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äCompositionEvent
ominaisuuksilla:
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äDragEvent
ominaisuuksilla:Sisältää myös perityt
MouseEvent
ominaisuudet:altKey
button
buttons
ctrlKey
clientX
clientY
getModifierState(key)
metaKey
movementX
movementY
pageX
pageY
relatedTarget
screenX
screenY
shiftKey
Sisältää myös perityt
UIEvent
ominaisuudet:
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äFocusEvent
ominaisuuksilla:Sisältää myös perityt
UIEvent
ominaisuudet:
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äInputEvent
ominaisuuksilla:
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äKeyboardEvent
ominaisuuksilla:altKey
charCode
code
ctrlKey
getModifierState(key)
key
keyCode
locale
metaKey
location
repeat
shiftKey
which
Sisältää myös perityt
UIEvent
ominaisuudet:
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äMouseEvent
ominaisuuksilla:altKey
button
buttons
ctrlKey
clientX
clientY
getModifierState(key)
metaKey
movementX
movementY
pageX
pageY
relatedTarget
screenX
screenY
shiftKey
Sisältää myös perityt
UIEvent
ominaisuudet:
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äPointerEvent
ominaisuuksilla:Sisältää myös perityt
MouseEvent
ominaisuudet:altKey
button
buttons
ctrlKey
clientX
clientY
getModifierState(key)
metaKey
movementX
movementY
pageX
pageY
relatedTarget
screenX
screenY
shiftKey
Sisältää myös perityt
UIEvent
ominaisuudet:
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äTouchEvent
ominaisuuksilla:Sisältää myös perityt
UIEvent
ominaisuudet:
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äTransitionEvent
ominaisuuksilla:
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äUIEvent
ominaisuuksilla:
WheelEvent
käsittelijäfunktio
Tapahtumakäsittelijätyyppi onWheel
tapahtumalle.
<div
onScroll={e => console.log('onScroll')}
/>
Parametrit
-
e
: React tapahtumaolio näillä ylimääräisilläWheelEvent
ominaisuuksilla:Sisältää myös perityt
MouseEvent
ominaisuudet:altKey
button
buttons
ctrlKey
clientX
clientY
getModifierState(key)
metaKey
movementX
movementY
pageX
pageY
relatedTarget
screenX
screenY
shiftKey
Sisältää myös perityt
UIEvent
ominaisuudet:
Käyttö
CSS tyylien käyttö
Reactissa, määrität CSS-luokan className
:lla. Se toimii kuten class
attribuutti HTML:ssä:
<img className="avatar" />
Sitten kirjoitat CSS säännöt sille erillisessä CSS tiedostossa:
/* CSS tiedostossasi */
.avatar {
border-radius: 50%;
}
React ei määrää miten lisäät CSS tiedostoja. Yksinkertaisimmassa tapauksessa, lisäät <link>
tagin HTML:ään. Jos käytät rakennustyökalua tai frameworkkia, tutustu sen dokumentaatioon oppiaksesi miten lisäät CSS tiedoston projektiisi.
Joskus, tyylien arvot riippuvat datasta. Käytä style
attribuuttia välittääksesi joitain tyylejä dynaamisesti:
<img
className="avatar"
style={{
width: user.imageSize,
height: user.imageSize
}}
/>
Ylläolevassa esimerkissä, style={{}}
ei ole erikoissyntaksi, vaan tavallinen {}
objekti style={ }
JSX aaltosulkeiden sisällä. Suosittelemme käyttämään style
attribuuttia vain silloin kun tyylit riippuvat JavaScript muuttujista.
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
Määrittääksesi CSS luokkia ehdollisesti, sinun täytyy tuottaa className
merkkijono itse käyttäen JavaScriptiä.
Esimerkiksi, className={'row ' + (isSelected ? 'selected': '')}
tuottaa joko className="row"
tai className="row selected"
riippuen siitä onko isSelected
true
.
Tehdäksesi tästä luettavamman, voit käyttää pientä apukirjastoa kuten classnames
:
import cn from 'classnames';
function Row({ isSelected }) {
return (
<div className={cn('row', isSelected && 'selected')}>
...
</div>
);
}
Se on erityisen kätevää jos sinulla on useita ehdollisia luokkia:
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ä
Joskus sinun täytyy saada selaimen DOM noodi joka on yhdistetty JSX tagiin. Esimerkiksi, jos haluat kohdistaa <input>
:iin kun painiketta painetaan, sinun täytyy kutsua focus()
selaimen <input>
DOM noodilla.
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 asettaa DOM noodin inputRef.current
:iin kun se on renderöity näytölle.
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> </> ); }
Lue lisää DOM manipuloinnista refien avulla ja katso lisää esimerkkejä.
Kehittyneempiin käyttötapauksiin, ref
attribuutti hyväksyy myös takaisinkutsufunktion.
Sisäisen HTML sisällön asettaminen vaarallisesti
Voit välittää raakaa HTML merkkijonoa elementille näin:
const markup = { __html: '<p>some raw html</p>' };
return <div dangerouslySetInnerHTML={markup} />;
Tämä on vaarallista. Kuten DOM:n innerHTML
ominaisuudella, sinun täytyy olla erittäin varovainen! Ellei merkintä tule täysin luotettavasta lähteestä, on triviaalia aiheuttaa XSS haavoittuvuus tällä tavalla.
Esimerkiksi, jos käytät Markdown kirjastoa joka muuntaa Markdownia HTML:ksi, luotat että sen parseri ei sisällä bugeja, ja käyttäjä näkee vain oman syötteen, voit näyttää tuloksena olevan HTML:n näin:
import { Remarkable } from 'remarkable'; const md = new Remarkable(); function renderMarkdownToHTML(markdown) { // Tämä on turvallista VAIN koska HTML näytetään // samalle käyttäjälle, ja koska luotat tämän // Markdown parserin oelvan bugivapaa. const renderedHTML = md.render(markdown); return {__html: renderedHTML}; } export default function MarkdownPreview({ markdown }) { const markup = renderMarkdownToHTML(markdown); return <div dangerouslySetInnerHTML={markup} />; }
Nähdäksesi miksi mielivaltaisen HTML renderöiminen on vaarallista, korvaa ylläoleva koodi tällä:
const post = {
// Kuvittele tämä sisältö tallennettuna tietokantaan.
content: `<img src="" onerror='alert("sinut häkkeröitiin")'>`
};
export default function MarkdownPreview() {
// 🔴 TIETOTURVA-AUKKO: luotettamattoman syötteen välittäminen dangerouslySetInnerHTML:lle
const markup = { __html: post.content };
return <div dangerouslySetInnerHTML={markup} />;
}
Koodi upotettuna HTML:ssä suoritetaan. Hakkeri voisi käyttää tätä tietoturva-aukkoa varastaakseen käyttäjän tietoja tai suorittaakseen toimia heidän puolestaan. Käytä dangerouslySetInnerHTML
:ää vain luotettavan ja puhdistetun datan kanssa.
Hiiren tapahtumien käsitteleminen
Tämä esimerkki näyttää joitain yleisiä hiiritapahtumia ja milloin ne suoritetaan.
export default function MouseExample() { return ( <div onMouseEnter={e => console.log('onMouseEnter (parent)')} onMouseLeave={e => console.log('onMouseLeave (parent)')} > <button onClick={e => console.log('onClick (ensimmäinen painike)')} onMouseDown={e => console.log('onMouseDown (ensimmäinen painike)')} onMouseEnter={e => console.log('onMouseEnter (ensimmäinen painike)')} onMouseLeave={e => console.log('onMouseLeave (ensimmäinen painike)')} onMouseOver={e => console.log('onMouseOver (ensimmäinen painike)')} onMouseUp={e => console.log('onMouseUp (ensimmäinen painike)')} > Ensimmäinen painike </button> <button onClick={e => console.log('onClick (toinen painike)')} onMouseDown={e => console.log('onMouseDown (toinen painike)')} onMouseEnter={e => console.log('onMouseEnter (toinen painike)')} onMouseLeave={e => console.log('onMouseLeave (toinen painike)')} onMouseOver={e => console.log('onMouseOver (toinen painike)')} onMouseUp={e => console.log('onMouseUp (toinen painike)')} > Toinen painike </button> </div> ); }
Osoittimen tapahtumien käsitteleminen
Tämä esimerkki näyttää joitain yleisiä osoitintapahtumia ja milloin ne suoritetaan.
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 (ensimmäinen lapsi)')} onPointerEnter={e => console.log('onPointerEnter (ensimmäinen lapsi)')} onPointerLeave={e => console.log('onPointerLeave (ensimmäinen lapsi)')} onPointerMove={e => console.log('onPointerMove (ensimmäinen lapsi)')} onPointerUp={e => console.log('onPointerUp (ensimmäinen lapsi)')} style={{ padding: 20, backgroundColor: 'lightyellow' }} > Ensimmäinen lapsi </div> <div onPointerDown={e => console.log('onPointerDown (toinen lapsi)')} onPointerEnter={e => console.log('onPointerEnter (toinen lapsi)')} onPointerLeave={e => console.log('onPointerLeave (toinen lapsi)')} onPointerMove={e => console.log('onPointerMove (toinen lapsi)')} onPointerUp={e => console.log('onPointerUp (toinen lapsi)')} style={{ padding: 20, backgroundColor: 'lightblue' }} > Toinen lapsi </div> </div> ); }
Kohdennustapahtumien käsitteleminen
Reactissa, kohdennustapahtumat kuplivat. Voit käyttää currentTarget
ja relatedTarget
erottaaksesi onko kohdennus peräisin ulkopuolelta vai ei. Esimerkki näyttää miten havaita lapsen kohdennustapahtuma, vanhemman kohdennustapahtuma, ja miten havaita kohdennuksen tuleminen tai lähteminen koko alipuusta.
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)) { // Ei suoritettu kun vaihdetaan kohdennusta lasten välillä 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)) { // Ei suoritettu kun vaihdetaan kohdennusta lasten välillä console.log('focus left parent'); } }} > <label> Etunimi: <input name="firstName" /> </label> <label> Sukunimi: <input name="lastName" /> </label> </div> ); }
Näppäimistötapahtumien käsitteleminen
Tämä esimerkki näyttää joitain yleisiä näppäimistötapahtumia ja milloin ne suoritetaan.
export default function KeyboardExample() { return ( <label> Etunimi: <input name="firstName" onKeyDown={e => console.log('onKeyDown:', e.key, e.code)} onKeyUp={e => console.log('onKeyUp:', e.key, e.code)} /> </label> ); }