Componentes comuns (por exemplo, <div>)
Todos os componentes de navegador integrados, como <div>
, suportam algumas props
e eventos comuns.
- Referência
- Componentes comuns (por exemplo,
<div>
) - Função de callback
ref
- Objeto de evento do React
- Função de manipulador de evento
AnimationEvent
- Função de manipulador de evento
ClipboardEvent
- Função de manipulador de evento
CompositionEvent
- Função de manipulador de evento
DragEvent
- Função de manipulador de evento
FocusEvent
- Função de manipulador de evento
Event
- Função de manipulador de evento
InputEvent
- Função de manipulador de evento
KeyboardEvent
- Função de manipulador de evento
MouseEvent
- Função de manipulador de evento
PointerEvent
- Função de manipulador de evento
TouchEvent
- Função de manipulador de evento
TransitionEvent
- Função de manipulador de evento
UIEvent
- Função de manipulador de evento
WheelEvent
- Componentes comuns (por exemplo,
- Uso
Referência
Componentes comuns (por exemplo, <div>
)
<div className="wrapper">Algum conteúdo</div>
Props
Essas props
especiais do React são suportadas para todos os componentes integrados:
-
children
: Um nó React (um elemento, uma string, um número, um portal, um nó vazio comonull
,undefined
e booleanos, ou um array de outros nós React). Especifica o conteúdo dentro do componente. Quando você usa JSX, geralmente especificará aprop
children
implicitamente aninhando tags como<div><span /></div>
. -
dangerouslySetInnerHTML
: Um objeto da forma{ __html: '<p>algum html</p>' }
com uma string de HTML bruto dentro. Substitui a propriedadeinnerHTML
do nó do DOM e exibe o HTML passado dentro. Isso deve ser usado com extrema cautela! Se o HTML dentro não for confiável (por exemplo, se for baseado em dados de usuário), você corre o risco de introduzir uma vulnerabilidade de XSS. Leia mais sobre o uso dedangerouslySetInnerHTML
. -
ref
: Um objeto ref deuseRef
oucreateRef
, ou umaref
callback function, ou uma string para refs legadas. Sua ref será preenchida com o elemento DOM para esse nó. Leia mais sobre como manipular o DOM com refs. -
suppressContentEditableWarning
: Um booleano. Setrue
, suprime o aviso que o React mostra para elementos que têmchildren
econtentEditable={true}
(que normalmente não funcionam juntos). Use isso se você estiver construindo uma biblioteca de entrada de texto que gerencia o conteúdocontentEditable
manualmente. -
suppressHydrationWarning
: Um booleano. Se você usar renderização no servidor, normalmente há um aviso quando o servidor e o cliente renderizam conteúdos diferentes. Em alguns casos raros (como timestamps), é muito difícil ou impossível garantir uma correspondência exata. Se você definirsuppressHydrationWarning
comotrue
, o React não alarmará sobre discrepâncias nos atributos e no conteúdo daquele elemento. Funciona apenas a um nível de profundidade e é destinado a ser usado como uma válvula de escape. Não exagere. Leia sobre a supressão de erros de hidratação. -
style
: Um objeto com estilos CSS, por exemplo{ fontWeight: 'bold', margin: 20 }
. Semelhante à propriedade DOMstyle
, os nomes das propriedades CSS precisam ser escritos emcamelCase
, por exemplofontWeight
em vez defont-weight
. Você pode passar strings ou números como valores. Se você passar um número, comowidth: 100
, o React automaticamente anexarápx
(“pixels”) ao valor, a menos que seja uma propriedade sem unidade. Recomendamos usarstyle
apenas para estilos dinâmicos onde você não conhece os valores do estilo antecipadamente. Em outros casos, aplicar classes CSS simples comclassName
é mais eficiente. Leia mais sobreclassName
estyle
.
Essas props
DOM padrão também são suportadas para todos os componentes integrados:
accessKey
: Uma string. Especifica um atalho de teclado para o elemento. Geralmente não recomendado.aria-*
: Os atributos ARIA permitem que você especifique as informações da árvore de acessibilidade para este elemento. Veja Atributos ARIA para uma referência completa. No React, todos os nomes de atributos ARIA são exatamente os mesmos que em HTML.autoCapitalize
: Uma string. Especifica se e como a entrada do usuário deve ser capitalizada.className
: Uma string. Especifica o nome da classe CSS do elemento. Leia mais sobre a aplicação de estilos CSS.contentEditable
: Um booleano. Setrue
, o navegador permite que o usuário edite diretamente o elemento renderizado. Isso é usado para implementar bibliotecas de entrada de texto rico como Lexical. O React avisa se você tentar passar filhos React para um elemento comcontentEditable={true}
porque o React não poderá atualizar seu conteúdo após edições do usuário.data-*
: Os atributos de dados permitem que você anexe alguns dados em formato de string ao elemento, por exemplodata-fruit="banana"
. No React, eles não são comumente usados porque normalmente você leria dados deprops
oustate
em vez disso.dir
: Ou'ltr'
ou'rtl'
. Especifica a direção do texto do elemento.draggable
: Um booleano. Especifica se o elemento é arrastável. Parte da API de Arrastar e Soltar do HTML.enterKeyHint
: Uma string. Especifica qual ação apresentar para a tecla enter em teclados virtuais.htmlFor
: Uma string. Para<label>
e<output>
, permite que você associe o rótulo com algum controle. Igual aofor
atributo HTML. O React usa os nomes de propriedades DOM padrão (htmlFor
) em vez de nomes de atributos HTML.hidden
: Um booleano ou uma string. Especifica se o elemento deve ser oculto.id
: Uma string. Especifica um identificador único para este elemento, que pode ser usado para encontrá-lo mais tarde ou conectá-lo com outros elementos. Gere-o comuseId
para evitar colisões entre múltiplas instâncias do mesmo componente.is
: Uma string. Se especificado, o componente se comportará como um elemento personalizado.inputMode
: Uma string. Especifica qual tipo de teclado exibir (por exemplo, texto, número ou telefone).itemProp
: Uma string. Especifica qual propriedade o elemento representa para crawlers de dados estruturados.lang
: Uma string. Especifica o idioma do elemento.onAnimationEnd
: Uma função de manipuladorAnimationEvent
. Dispara quando uma animação CSS é completada.onAnimationEndCapture
: Uma versão deonAnimationEnd
que dispara na fase de captura.onAnimationIteration
: Uma função de manipuladorAnimationEvent
. Dispara quando uma iteração de uma animação CSS termina, e outra começa.onAnimationIterationCapture
: Uma versão deonAnimationIteration
que dispara na fase de captura.onAnimationStart
: Uma função de manipuladorAnimationEvent
. Dispara quando uma animação CSS começa.onAnimationStartCapture
:onAnimationStart
, mas dispara na fase de captura.onAuxClick
: Uma função de manipuladorMouseEvent
. Dispara quando um botão de ponteiro não primário é clicado.onAuxClickCapture
: Uma versão deonAuxClick
que dispara na fase de captura.onBeforeInput
: Uma função de manipuladorInputEvent
. Dispara antes que o valor de um elemento editável seja modificado. O React não usa ainda o evento nativobeforeinput
e, em vez disso, tenta fazer um polyfill usando outros eventos.onBeforeInputCapture
: Uma versão deonBeforeInput
que dispara na fase de captura.onBlur
: Uma função de manipuladorFocusEvent
. Dispara quando um elemento perde o foco. Ao contrário do eventoblur
do navegador, no React o eventoonBlur
propaga.onBlurCapture
: Uma versão deonBlur
que dispara na fase de captura.onClick
: Uma função de manipuladorMouseEvent
. Dispara quando o botão primário foi clicado no dispositivo de apontar.onClickCapture
: Uma versão deonClick
que dispara na fase de captura.onCompositionStart
: Uma função de manipuladorCompositionEvent
. Dispara quando um editor de método de entrada inicia uma nova sessão de composição.onCompositionStartCapture
: Uma versão deonCompositionStart
que dispara na fase de captura.onCompositionEnd
: Uma função de manipuladorCompositionEvent
. Dispara quando um editor de método de entrada completa ou cancela uma sessão de composição.onCompositionEndCapture
: Uma versão deonCompositionEnd
que dispara na fase de captura.onCompositionUpdate
: Uma função de manipuladorCompositionEvent
. Dispara quando um editor de método de entrada recebe um novo caractere.onCompositionUpdateCapture
: Uma versão deonCompositionUpdate
que dispara na fase de captura.onContextMenu
: Uma função de manipuladorMouseEvent
. Dispara quando o usuário tenta abrir um menu de contexto.onContextMenuCapture
: Uma versão deonContextMenu
que dispara na fase de captura.onCopy
: Uma função de manipuladorClipboardEvent
. Dispara quando o usuário tenta copiar algo para a área de transferência.onCopyCapture
: Uma versão deonCopy
que dispara na fase de captura.onCut
: Uma função de manipuladorClipboardEvent
. Dispara quando o usuário tenta cortar algo para a área de transferência.onCutCapture
: Uma versão deonCut
que dispara na fase de captura.onDoubleClick
: Uma função de manipuladorMouseEvent
. Dispara quando o usuário clica duas vezes. Corresponde ao eventodblclick
do navegador.onDoubleClickCapture
: Uma versão deonDoubleClick
que dispara na fase de captura.onDrag
: Uma função de manipuladorDragEvent
. Dispara enquanto o usuário está arrastando algo.onDragCapture
: Uma versão deonDrag
que dispara na fase de captura.onDragEnd
: Uma função de manipuladorDragEvent
. Dispara quando o usuário para de arrastar algo.onDragEndCapture
: Uma versão deonDragEnd
que dispara na fase de captura.onDragEnter
: Uma função de manipuladorDragEvent
. Dispara quando o conteúdo arrastado entra em um alvo de soltura válido.onDragEnterCapture
: Uma versão deonDragEnter
que dispara na fase de captura.onDragOver
: Uma função de manipuladorDragEvent
. Dispara em um alvo de soltura válido enquanto o conteúdo arrastado está sendo arrastado sobre ele. Você deve chamare.preventDefault()
aqui para permitir a soltura.onDragOverCapture
: Uma versão deonDragOver
que dispara na fase de captura.onDragStart
: Uma função de manipuladorDragEvent
. Dispara quando o usuário começa a arrastar um elemento.onDragStartCapture
: Uma versão deonDragStart
que dispara na fase de captura.onDrop
: Uma função de manipuladorDragEvent
. Dispara quando algo é solto em um alvo de soltura válido.onDropCapture
: Uma versão deonDrop
que dispara na fase de captura.onFocus
: Uma função de manipuladorFocusEvent
. Dispara quando um elemento recebe foco. Ao contrário do eventofocus
do navegador, no React o eventoonFocus
propaga.onFocusCapture
: Uma versão deonFocus
que dispara na fase de captura.onGotPointerCapture
: Uma função de manipuladorPointerEvent
. Dispara quando um elemento captura programaticamente um ponteiro.onGotPointerCaptureCapture
: Uma versão deonGotPointerCapture
que dispara na fase de captura.onKeyDown
: Uma função de manipuladorKeyboardEvent
. Dispara quando uma tecla é pressionada.onKeyDownCapture
: Uma versão deonKeyDown
que dispara na fase de captura.onKeyPress
: Uma função de manipuladorKeyboardEvent
. Obsoleto. UseonKeyDown
ouonBeforeInput
em vez disso.onKeyPressCapture
: Uma versão deonKeyPress
que dispara na fase de captura.onKeyUp
: Uma função de manipuladorKeyboardEvent
. Dispara quando uma tecla é liberada.onKeyUpCapture
: Uma versão deonKeyUp
que dispara na fase de captura.onLostPointerCapture
: Uma função de manipuladorPointerEvent
. Dispara quando um elemento para de capturar um ponteiro.onLostPointerCaptureCapture
: Uma versão deonLostPointerCapture
que dispara na fase de captura.onMouseDown
: Uma função de manipuladorMouseEvent
. Dispara quando o ponteiro é pressionado.onMouseDownCapture
: Uma versão deonMouseDown
que dispara na fase de captura.onMouseEnter
: Uma função de manipuladorMouseEvent
. Dispara quando o ponteiro se move para dentro de um elemento. Não tem uma fase de captura. Em vez disso,onMouseLeave
eonMouseEnter
propagam do elemento sendo deixado para o que está sendo acessado.onMouseLeave
: Uma função de manipuladorMouseEvent
. Dispara quando o ponteiro se move para fora de um elemento. Não tem uma fase de captura. Em vez disso,onMouseLeave
eonMouseEnter
propagam do elemento sendo deixado para o que está sendo acessado.onMouseMove
: Uma função de manipuladorMouseEvent
. Dispara quando o ponteiro muda de coordenadas.onMouseMoveCapture
: Uma versão deonMouseMove
que dispara na fase de captura.onMouseOut
: Uma função de manipuladorMouseEvent
. Dispara quando o ponteiro se move para fora de um elemento, ou se ele se move para dentro de um elemento filho.onMouseOutCapture
: Uma versão deonMouseOut
que dispara na fase de captura.onMouseUp
: Uma função de manipuladorMouseEvent
. Dispara quando o ponteiro é liberado.onMouseUpCapture
: Uma versão deonMouseUp
que dispara na fase de captura.onPointerCancel
: Uma função de manipuladorPointerEvent
. Dispara quando o navegador cancela uma interação de ponteiro.onPointerCancelCapture
: Uma versão deonPointerCancel
que dispara na fase de captura.onPointerDown
: Uma função de manipuladorPointerEvent
. Dispara quando um ponteiro se torna ativo.onPointerDownCapture
: Uma versão deonPointerDown
que dispara na fase de captura.onPointerEnter
: Uma função de manipuladorPointerEvent
. Dispara quando um ponteiro se move para dentro de um elemento. Não tem uma fase de captura. Em vez disso,onPointerLeave
eonPointerEnter
propagam do elemento sendo deixado para o que está sendo acessado.onPointerLeave
: Uma função de manipuladorPointerEvent
. Dispara quando um ponteiro se move para fora de um elemento. Não tem uma fase de captura. Em vez disso,onPointerLeave
eonPointerEnter
propagam do elemento sendo deixado para o que está sendo acessado.onPointerMove
: Uma função de manipuladorPointerEvent
. Dispara quando um ponteiro muda de coordenadas.onPointerMoveCapture
: Uma versão deonPointerMove
que dispara na fase de captura.onPointerOut
: Uma função de manipuladorPointerEvent
. Dispara quando um ponteiro se move para fora de um elemento, se a interação do ponteiro é cancelada, e algumas outras razões.onPointerOutCapture
: Uma versão deonPointerOut
que dispara na fase de captura.onPointerUp
: Uma função de manipuladorPointerEvent
. Dispara quando um ponteiro não está mais ativo.onPointerUpCapture
: Uma versão deonPointerUp
que dispara na fase de captura.onPaste
: Uma função de manipuladorClipboardEvent
. Dispara quando o usuário tenta colar algo da área de transferência.onPasteCapture
: Uma versão deonPaste
que dispara na fase de captura.onScroll
: Uma função de manipuladorEvent
. Dispara quando um elemento foi rolado. Este evento não se propaga.onScrollCapture
: Uma versão deonScroll
que dispara na fase de captura.onSelect
: Uma função de manipuladorEvent
. Dispara após a seleção dentro de um elemento editável como um input mudar. O React estende o eventoonSelect
para funcionar também com elementoscontentEditable={true}
. Além disso, o React o estende para disparar para seleção vazia e em edições (que podem afetar a seleção).onSelectCapture
: Uma versão deonSelect
que dispara na fase de captura.onTouchCancel
: Uma função de manipuladorTouchEvent
. Dispara quando o navegador cancela uma interação de toque.onTouchCancelCapture
: Uma versão deonTouchCancel
que dispara na fase de captura.onTouchEnd
: Uma função de manipuladorTouchEvent
. Dispara quando um ou mais pontos de toque são removidos.onTouchEndCapture
: Uma versão deonTouchEnd
que dispara na fase de captura.onTouchMove
: Uma função de manipuladorTouchEvent
. Dispara quando um ou mais pontos de toque são movidos.onTouchMoveCapture
: Uma versão deonTouchMove
que dispara na fase de captura.onTouchStart
: Uma função de manipuladorTouchEvent
. Dispara quando um ou mais pontos de toque são colocados.onTouchStartCapture
: Uma versão deonTouchStart
que dispara na fase de captura.onTransitionEnd
: Uma função de manipuladorTransitionEvent
. Dispara quando uma transição CSS completa.onTransitionEndCapture
: Uma versão deonTransitionEnd
que dispara na fase de captura.onWheel
: Uma função de manipuladorWheelEvent
. Dispara quando o usuário gira um botão de roda.onWheelCapture
: Uma versão deonWheel
que dispara na fase de captura.role
: Uma string. Especifica o papel do elemento explicitamente para tecnologias assistivas.slot
: Uma string. Especifica o nome do slot ao usar shadow DOM. No React, um padrão equivalente é tipicamente alcançado passando JSX comoprops
, por exemplo<Layout left={<Sidebar />} right={<Content />} />
.spellCheck
: Um booleano ou nulo. Se definido explicitamente comotrue
oufalse
, habilita ou desabilita a verificação ortográfica.tabIndex
: Um número. Sobrescreve o comportamento padrão do botão Tab. Evite usar valores diferentes de-1
e0
.title
: Uma string. Especifica o texto da tooltip para o elemento.translate
: Pode ser'yes'
ou'no'
. Passar'no'
exclui o conteúdo do elemento de ser traduzido.
Você também pode passar atributos personalizados como props
, por exemplo mycustomprop="someValue"
. Isso pode ser útil ao integrar com bibliotecas de terceiros. O nome do atributo personalizado deve estar em minúsculas e não deve começar com on
. O valor será convertido em uma string. Se você passar null
ou undefined
, o atributo personalizado será removido.
Esses eventos disparam apenas para os elementos <form>
:
onReset
: Uma função de manipuladorEvent
. Dispara quando um formulário é redefinido.onResetCapture
: Uma versão deonReset
que dispara na fase de captura.onSubmit
: Uma função de manipuladorEvent
. Dispara quando um formulário é enviado.onSubmitCapture
: Uma versão deonSubmit
que dispara na fase de captura.
Esses eventos disparam apenas para os elementos <dialog>
. Ao contrário dos eventos do navegador, eles propagam no React:
onCancel
: Uma função de manipuladorEvent
. Dispara quando o usuário tenta dispensar o diálogo.onCancelCapture
: Uma versão deonCancel
que dispara na fase de captura.onClose
: Uma função de manipuladorEvent
. Dispara quando um diálogo foi fechado.onCloseCapture
: Uma versão deonClose
que dispara na fase de captura.
Esses eventos disparam apenas para os elementos <details>
. Ao contrário dos eventos do navegador, eles propagam no React:
onToggle
: Uma função de manipuladorEvent
. Dispara quando o usuário alterna os detalhes.onToggleCapture
: Uma versão deonToggle
que dispara na fase de captura.
Esses eventos disparam para <img>
, <iframe>
, <object>
, <embed>
, <link>
, e elementos SVG <image>
(https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/SVG_Image_Tag). Ao contrário dos eventos do navegador, eles propagam no React:
onLoad
: Uma função de manipuladorEvent
. Dispara quando o recurso foi carregado.onLoadCapture
: Uma versão deonLoad
que dispara na fase de captura.onError
: Uma função de manipuladorEvent
. Dispara quando o recurso não pôde ser carregado.onErrorCapture
: Uma versão deonError
que dispara na fase de captura.
Esses eventos disparam para recursos como <audio>
e <video>
. Ao contrário dos eventos do navegador, eles propagam no React:
onAbort
: Uma função de manipuladorEvent
. Dispara quando o recurso não foi totalmente carregado, mas não devido a um erro.onAbortCapture
: Uma versão deonAbort
que dispara na fase de captura.onCanPlay
: Uma função de manipuladorEvent
. Dispara quando há dados suficientes para começar a reprodução, mas não o suficiente para reproduzir até o final sem buffering.onCanPlayCapture
: Uma versão deonCanPlay
que dispara na fase de captura.onCanPlayThrough
: Uma função de manipuladorEvent
. Dispara quando há dados suficientes que é provável que seja possível começar a reprodução sem buffering até o final.onCanPlayThroughCapture
: Uma versão deonCanPlayThrough
que dispara na fase de captura.onDurationChange
: Uma função de manipuladorEvent
. Dispara quando a duração da mídia foi atualizada.onDurationChangeCapture
: Uma versão deonDurationChange
que dispara na fase de captura.onEmptied
: Uma função de manipuladorEvent
. Dispara quando a mídia se torna vazia.onEmptiedCapture
: Uma versão deonEmptied
que dispara na fase de captura.onEncrypted
: Uma função de manipuladorEvent
. Dispara quando o navegador encontra mídia criptografada.onEncryptedCapture
: Uma versão deonEncrypted
que dispara na fase de captura.onEnded
: Uma função de manipuladorEvent
. Dispara quando a reprodução para porque não há mais nada para tocar.onEndedCapture
: Uma versão deonEnded
que dispara na fase de captura.onError
: Uma função de manipuladorEvent
. Dispara quando o recurso não pôde ser carregado.onErrorCapture
: Uma versão deonError
que dispara na fase de captura.onLoadedData
: Uma função de manipuladorEvent
. Dispara quando o quadro de reprodução atual foi carregado.onLoadedDataCapture
: Uma versão deonLoadedData
que dispara na fase de captura.onLoadedMetadata
: Uma função de manipuladorEvent
. Dispara quando os metadados foram carregados.onLoadedMetadataCapture
: Uma versão deonLoadedMetadata
que dispara na fase de captura.onLoadStart
: Uma função de manipuladorEvent
. Dispara quando o navegador começou a carregar o recurso.onLoadStartCapture
: Uma versão deonLoadStart
que dispara na fase de captura.onPause
: Uma função de manipuladorEvent
. Dispara quando a mídia foi pausada.onPauseCapture
: Uma versão deonPause
que dispara na fase de captura.onPlay
: Uma função de manipuladorEvent
. Dispara quando a mídia não está mais pausada.onPlayCapture
: Uma versão deonPlay
que dispara na fase de captura.onPlaying
: Uma função de manipuladorEvent
. Dispara quando a mídia começa ou reinicia a reprodução.onPlayingCapture
: Uma versão deonPlaying
que dispara na fase de captura.onProgress
: Uma função de manipuladorEvent
. Dispara periodicamente enquanto o recurso está carregando.onProgressCapture
: Uma versão deonProgress
que dispara na fase de captura.onRateChange
: Uma função de manipuladorEvent
. Dispara quando a taxa de reprodução muda.onRateChangeCapture
: Uma versão deonRateChange
que dispara na fase de captura.onResize
: Uma função de manipuladorEvent
. Dispara quando o vídeo muda de tamanho.onResizeCapture
: Uma versão deonResize
que dispara na fase de captura.onSeeked
: Uma função de manipuladorEvent
. Dispara quando uma operação de busca é completada.onSeekedCapture
: Uma versão deonSeeked
que dispara na fase de captura.onSeeking
: Uma função de manipuladorEvent
. Dispara quando uma operação de busca começa.onSeekingCapture
: Uma versão deonSeeking
que dispara na fase de captura.onStalled
: Uma função de manipuladorEvent
. Dispara quando o navegador está esperando por dados, mas eles continuam não carregando.onStalledCapture
: Uma versão deonStalled
que dispara na fase de captura.onSuspend
: Uma função de manipuladorEvent
. Dispara quando o carregamento do recurso foi suspenso.onSuspendCapture
: Uma versão deonSuspend
que dispara na fase de captura.onTimeUpdate
: Uma função de manipuladorEvent
. Dispara quando o tempo de reprodução atual é atualizado.onTimeUpdateCapture
: Uma versão deonTimeUpdate
que dispara na fase de captura.onVolumeChange
: Uma função de manipuladorEvent
. Dispara quando o volume muda.onVolumeChangeCapture
: Uma versão deonVolumeChange
que dispara na fase de captura.onWaiting
: Uma função de manipuladorEvent
. Dispara quando a reprodução é interrompida devido à falta temporária de dados.onWaitingCapture
: Uma versão deonWaiting
que dispara na fase de captura.
Ressalvas
- Você não pode passar
children
edangerouslySetInnerHTML
ao mesmo tempo. - Alguns eventos (como
onAbort
eonLoad
) não se propagam no navegador, mas se propagam no React.
Função de callback ref
Em vez de um objeto ref (como o retornado por useRef
), você pode passar uma função para o atributo ref
.
<div ref={(node) => console.log(node)} />
Veja um exemplo de uso da callback ref
.
Quando o nó DOM <div>
é adicionado à tela, o React chamará sua callback ref
com o node
DOM como argumento. Quando aquele nó DOM <div>
é removido, o React chamará sua callback ref
com null
.
O React também chamará sua callback ref
sempre que você passar uma callback ref
diferente. No exemplo acima, (node) => { ... }
é uma função diferente em cada renderização. Quando seu componente re-renderiza, a anterior função será chamada com null
como argumento, e a próxima função será chamada com o nó DOM.
Parâmetros
node
: Um nó DOM ounull
. O React lhe passará o nó DOM quando a ref for anexada, enull
quando a ref for destacada. A menos que você passe a mesma referência de função para a callbackref
em cada renderização, a callback será temporariamente destacada e reanexada durante cada re-renderização do componente.
Objeto de evento do React
Seus manipuladores de eventos receberão um objeto de evento do React. Às vezes, ele também é conhecido como um “evento sintético”.
<button onClick={e => {
console.log(e); // Objeto de evento do React
}} />
Ele se conforma ao mesmo padrão que os eventos DOM subjacentes, mas corrige algumas inconsistências dos navegadores.
Alguns eventos do React não se mapeiam diretamente para os eventos nativos do navegador. Por exemplo, em onMouseLeave
, e.nativeEvent
apontará para um evento mouseout
. O mapeamento específico não faz parte da API pública e pode mudar no futuro. Se você precisar do evento do navegador subjacente por algum motivo, leia a partir de e.nativeEvent
.
Propriedades
Os objetos de evento do React implementam algumas das propriedades padrão do Event
:
bubbles
: Um booleano. Retorna se o evento borbulha através do DOM.cancelable
: Um booleano. Retorna se o evento pode ser cancelado.currentTarget
: Um nó DOM. Retorna o nó ao qual o manipulador atual está anexado na árvore React.defaultPrevented
: Um booleano. Retorna sepreventDefault
foi chamado.eventPhase
: Um número. Retorna em qual fase o evento está atualmente.isTrusted
: Um booleano. Retorna se o evento foi iniciado pelo usuário.target
: Um nó DOM. Retorna o nó no qual o evento ocorreu (que pode ser um filho distante).timeStamp
: Um número. Retorna o tempo em que o evento ocorreu.
Além disso, os objetos de evento do React fornecem essas propriedades:
nativeEvent
: UmEvent
DOM. O objeto original do evento do navegador.
Métodos
Os objetos de evento do React implementam alguns dos métodos padrão do Event
:
preventDefault()
: Impede a ação padrão do navegador para o evento.stopPropagation()
: Interrompe a propagação do evento através da árvore React.
Além disso, os objetos de evento do React fornecem esses métodos:
isDefaultPrevented()
: Retorna um valor booleano indicando sepreventDefault
foi chamado.isPropagationStopped()
: Retorna um valor booleano indicando sestopPropagation
foi chamado.persist()
: Não usado com React DOM. Com React Native, chame isso para ler as propriedades do evento após o evento.isPersistent()
: Não usado com React DOM. Com React Native, retorna sepersist
foi chamado.
Ressalvas
- Os valores de
currentTarget
,eventPhase
,target
, etype
refletem os valores que seu código React espera. Nos bastidores, o React anexa manipuladores de eventos na raiz, mas isso não é refletido nos objetos de evento do React. Por exemplo,e.currentTarget
pode não ser o mesmo que oe.nativeEvent.currentTarget
subjacente. Para eventos polyfilled,e.type
(tipo de evento React) pode diferir dee.nativeEvent.type
(tipo subjacente).
Função de manipulador de evento AnimationEvent
Um tipo de manipulador de eventos para os eventos de animação CSS.
<div
onAnimationStart={e => console.log('onAnimationStart')}
onAnimationIteration={e => console.log('onAnimationIteration')}
onAnimationEnd={e => console.log('onAnimationEnd')}
/>
Parâmetros
e
: Um objeto de evento do React com essas propriedades extras doAnimationEvent
:
Função de manipulador de evento ClipboardEvent
Um tipo de manipulador de eventos para os eventos da Clipboard API.
<input
onCopy={e => console.log('onCopy')}
onCut={e => console.log('onCut')}
onPaste={e => console.log('onPaste')}
/>
Parâmetros
-
e
: Um objeto de evento do React com essas propriedades extras doClipboardEvent
:
Função de manipulador de evento CompositionEvent
Um tipo de manipulador de eventos para os eventos de editor de método de entrada (IME).
<input
onCompositionStart={e => console.log('onCompositionStart')}
onCompositionUpdate={e => console.log('onCompositionUpdate')}
onCompositionEnd={e => console.log('onCompositionEnd')}
/>
Parâmetros
e
: Um objeto de evento do React com essas propriedades extras doCompositionEvent
:
Função de manipulador de evento DragEvent
Um tipo de manipulador de eventos para os eventos da HTML Drag and Drop API.
<>
<div
draggable={true}
onDragStart={e => console.log('onDragStart')}
onDragEnd={e => console.log('onDragEnd')}
>
Fonte de arrasto
</div>
<div
onDragEnter={e => console.log('onDragEnter')}
onDragLeave={e => console.log('onDragLeave')}
onDragOver={e => { e.preventDefault(); console.log('onDragOver'); }}
onDrop={e => console.log('onDrop')}
>
Alvo de soltura
</div>
</>
Parâmetros
-
e
: Um objeto de evento do React com essas propriedades extras doDragEvent
:Também inclui as propriedades herdadas do
MouseEvent
:altKey
button
buttons
ctrlKey
clientX
clientY
getModifierState(key)
metaKey
movementX
movementY
pageX
pageY
relatedTarget
screenX
screenY
shiftKey
Também inclui as propriedades herdadas do
UIEvent
:
Função de manipulador de evento FocusEvent
Um tipo de manipulador de eventos para os eventos de foco.
<input
onFocus={e => console.log('onFocus')}
onBlur={e => console.log('onBlur')}
/>
Parâmetros
-
e
: Um objeto de evento do React com essas propriedades extras doFocusEvent
:Também inclui as propriedades herdadas do
UIEvent
:
Função de manipulador de evento Event
Um tipo de manipulador para eventos genéricos.
Parâmetros
e
: Um objeto de evento do React sem propriedades adicionais.
Função de manipulador de evento InputEvent
Um tipo de manipulador de eventos para o evento onBeforeInput
.
<input onBeforeInput={e => console.log('onBeforeInput')} />
Parâmetros
e
: Um objeto de evento do React com essas propriedades extras doInputEvent
:
Função de manipulador de evento KeyboardEvent
Um tipo de manipulador de eventos para eventos de teclado.
<input
onKeyDown={e => console.log('onKeyDown')}
onKeyUp={e => console.log('onKeyUp')}
/>
Parâmetros
-
e
: Um objeto de evento do React com essas propriedades extras doKeyboardEvent
:altKey
charCode
code
ctrlKey
getModifierState(key)
key
keyCode
locale
metaKey
location
repeat
shiftKey
which
Também inclui as propriedades herdadas do
UIEvent
:
Função de manipulador de evento MouseEvent
Um tipo de manipulador de eventos para eventos de mouse.
<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')}
/>
Parâmetros
-
e
: Um objeto de evento do React com essas propriedades extras doMouseEvent
:altKey
button
buttons
ctrlKey
clientX
clientY
getModifierState(key)
metaKey
movementX
movementY
pageX
pageY
relatedTarget
screenX
screenY
shiftKey
Também inclui as propriedades herdadas do
UIEvent
:
Função de manipulador de evento PointerEvent
Um tipo de manipulador de eventos para eventos de ponteiro.
<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')}
/>
Parâmetros
-
e
: Um objeto de evento do React com essas propriedades extras doPointerEvent
:Também inclui as propriedades herdadas do
MouseEvent
:altKey
button
buttons
ctrlKey
clientX
clientY
getModifierState(key)
metaKey
movementX
movementY
pageX
pageY
relatedTarget
screenX
screenY
shiftKey
Também inclui as propriedades herdadas do
UIEvent
:
Função de manipulador de evento TouchEvent
Um tipo de manipulador de eventos para eventos de toque.
<div
onTouchStart={e => console.log('onTouchStart')}
onTouchMove={e => console.log('onTouchMove')}
onTouchEnd={e => console.log('onTouchEnd')}
onTouchCancel={e => console.log('onTouchCancel')}
/>
Parâmetros
-
e
: Um objeto de evento do React com essas propriedades extras doTouchEvent
:Também inclui as propriedades herdadas do
UIEvent
:
Função de manipulador de evento TransitionEvent
Um tipo de manipulador de eventos para os eventos de transição CSS.
<div
onTransitionEnd={e => console.log('onTransitionEnd')}
/>
Parâmetros
e
: Um objeto de evento do React com essas propriedades extras doTransitionEvent
:
Função de manipulador de evento UIEvent
Um tipo de manipulador de eventos para eventos genéricos de UI.
<div
onScroll={e => console.log('onScroll')}
/>
Parâmetros
e
: Um objeto de evento do React com essas propriedades extras doUIEvent
:
Função de manipulador de evento WheelEvent
Um tipo de manipulador de eventos para o evento onWheel
.
<div
onWheel={e => console.log('onWheel')}
/>
Parâmetros
-
e
: Um objeto de evento do React com essas propriedades extras doWheelEvent
:Também inclui as propriedades herdadas do
MouseEvent
:altKey
button
buttons
ctrlKey
clientX
clientY
getModifierState(key)
metaKey
movementX
movementY
pageX
pageY
relatedTarget
screenX
screenY
Também inclui as propriedades herdadas do
UIEvent
:
Uso
Aplicando estilos CSS
No React, você especifica uma classe CSS com className
. Funciona como o atributo class
em HTML:
<img className="avatar" />
Então, você escreve as regras CSS para isso em um arquivo CSS separado:
/* No seu CSS */
.avatar {
border-radius: 50%;
}
O React não prescreve como você deve adicionar arquivos CSS. No caso mais simples, você adicionará uma tag <link>
ao seu HTML. Se você usar uma ferramenta de build ou um framework, consulte sua documentação para aprender como adicionar um arquivo CSS ao seu projeto.
Às vezes, os valores de estilo dependem de dados. Use o atributo style
para passar alguns estilos dinamicamente:
<img
className="avatar"
style={{
width: user.imageSize,
height: user.imageSize
}}
/>
No exemplo acima, style={{}}
não é uma sintaxe especial, mas um objeto regular {}
dentro das chaves style={ }
JSX. Recomend