Componentes de React DOM
Componentes comunes
Todos los componentes integrados en el navegador admiten algunas props y eventos.
Esto incluye props específicos de React como ref y dangerouslySetInnerHTML.
Componentes de formulario
Estos componentes integrados en el navegador aceptan la entrada del usuario:
Son especiales en React porque pasando el prop value los hace controlados.
Componentes de Recursos y Metadatos
Estos componentes integrados del navegador te permiten cargar recursos externos o anotar el documento con metadatos:
Son especiales en React porque React puede renderizarlos en el encabezado del documento, suspender mientras se cargan los recursos y aplicar otros comportamientos que se describen en la página de referencia de cada componente específico.
Todos los componentes HTML
React admite todos los componentes HTML integrados en el navegador. Esto incluye:
<aside><audio><b><base><bdi><bdo><blockquote><body><br><button><canvas><caption><cite><code><col><colgroup><data><datalist><dd><del><details><dfn><dialog><div><dl><dt><em><embed><fieldset><figcaption><figure><footer><form><h1><head><header><hgroup><hr><html><i><iframe><img><input><ins><kbd><label><legend><li><link><main><map><mark><menu><meta><meter><nav><noscript><object><ol><optgroup><option><output><p><picture><pre><progress><q><rp><rt><ruby><s><samp><script><section><select><slot><small><source><span><strong><style><sub><summary><sup><table><tbody><td><template><textarea><tfoot><th><thead><time><title><tr><track><u><ul><var><video><wbr>
Elementos HTML personalizados
Si renderizas una etiqueta con un guión, como <my-element>, React asumirá que quieres renderizar un elemento HTML personalizado.
- Los elementos personalizados aceptan
classen vez declassName, yforen vez dehtmlFor.
Si renderizas un elemento HTML integrado en el navegador con un atributo is, también será tratado como un elemento personalizado.
Setting values on custom elements
Custom elements have two methods of passing data into them:
- Attributes: Which are displayed in markup and can only be set to string values
- Properties: Which are not displayed in markup and can be set to arbitrary JavaScript values
By default, React will pass values bound in JSX as attributes:
<my-element value="Hello, world!"></my-element>Non-string JavaScript values passed to custom elements will be serialized by default:
// Will be passed as `"1,2,3"` as the output of `[1,2,3].toString()`
<my-element value={[1,2,3]}></my-element>React will, however, recognize an custom element’s property as one that it may pass arbitrary values to if the property name shows up on the class during construction:
export class MyElement extends HTMLElement { constructor() { super(); // The value here will be overwritten by React // when initialized as an element this.value = undefined; } connectedCallback() { this.innerHTML = this.value.join(", "); } }
Listening for events on custom elements
A common pattern when using custom elements is that they may dispatch CustomEvents rather than accept a function to call when an event occur. You can listen for these events using an on prefix when binding to the event via JSX.
export function App() { return ( <my-element onspeak={e => console.log(e.detail.message)} ></my-element> ) }
Todos los componentes SVG
React admite todos los componentes SVG integrados en el navegador. Esto incluye:
<a><animate><animateMotion><animateTransform><circle><clipPath><defs><desc><discard><ellipse><feBlend><feColorMatrix><feComponentTransfer><feComposite><feConvolveMatrix><feDiffuseLighting><feDisplacementMap><feDistantLight><feDropShadow><feFlood><feFuncA><feFuncB><feFuncG><feFuncR><feGaussianBlur><feImage><feMerge><feMergeNode><feMorphology><feOffset><fePointLight><feSpecularLighting><feSpotLight><feTile><feTurbulence><filter><foreignObject><g><hatch><hatchpath><image><line><linearGradient><marker><mask><metadata><mpath><path><pattern><polygon><polyline><radialGradient><rect><script><set><stop><style><svg><switch><symbol><text><textPath><title><tspan><use><view>