{"componentChunkName":"component---src-templates-docs-js","path":"/docs/react-dom.html","result":{"data":{"markdownRemark":{"html":"<p>Se você carregar o React através de uma tag <code class=\"gatsby-code-text\">&lt;script&gt;</code>, essas APIs de nível superior estão disponíveis globalmente em <code class=\"gatsby-code-text\">ReactDOM</code>. Se você usa ES6 com npm, você pode escrever <code class=\"gatsby-code-text\">import ReactDOM from &#39;react-dom&#39;</code>. Se você usa ES5 com npm, você pode escrever <code class=\"gatsby-code-text\">var ReactDOM = require(&#39;react-dom&#39;)</code>.</p>\n<h2 id=\"overview\"><a href=\"#overview\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Visão Geral </h2>\n<p>O pacote <code class=\"gatsby-code-text\">react-dom</code> provê métodos específicos para o DOM que podem ser usados no nível superior de sua aplicação como uma válvula de escape para sair do modelo do React se você precisar. A maioria de seus componentes não devem precisar deste módulo.</p>\n<ul>\n<li><a href=\"#render\"><code class=\"gatsby-code-text\">render()</code></a></li>\n<li><a href=\"#hydrate\"><code class=\"gatsby-code-text\">hydrate()</code></a></li>\n<li><a href=\"#unmountcomponentatnode\"><code class=\"gatsby-code-text\">unmountComponentAtNode()</code></a></li>\n<li><a href=\"#finddomnode\"><code class=\"gatsby-code-text\">findDOMNode()</code></a></li>\n<li><a href=\"#createportal\"><code class=\"gatsby-code-text\">createPortal()</code></a></li>\n</ul>\n<h3 id=\"browser-support\"><a href=\"#browser-support\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Suporte dos Navegadores </h3>\n<p>O React suporta todos os navegadores populares, incluindo Internet Explorer 9 e acima, apesar de <a href=\"/docs/javascript-environment-requirements.html\">precisar de alguns <em>polyfills</em></a> para navegadores antigos como IE 9 e IE 10.</p>\n<blockquote>\n<p>Nota</p>\n<p>Nós não temos suporte para navegadores antigos que não possuem suporte para métodos ES5. Mas, você pode descobrir que suas aplicações funcionam em navegadores antigos se <em>polyfills</em> como <a href=\"https://github.com/es-shims/es5-shim\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">es5-shim and es5-sham</a> forem incluídos na página. Você estará por conta e risco se optar por seguir esse caminho.</p>\n</blockquote>\n<hr>\n<h2 id=\"reference\"><a href=\"#reference\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Referência </h2>\n<h3 id=\"render\"><a href=\"#render\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><code class=\"gatsby-code-text\">render()</code> </h3>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\">ReactDOM<span class=\"token punctuation\">.</span><span class=\"token function\">render</span><span class=\"token punctuation\">(</span>element<span class=\"token punctuation\">,</span> container<span class=\"token punctuation\">[</span><span class=\"token punctuation\">,</span> callback<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span></code></pre></div>\n<p>Renderiza o um elemento do React no DOM no <code class=\"gatsby-code-text\">container</code> fornecido e retorna uma <a href=\"/docs/more-about-refs.html\">referência</a> ao componente (ou retorna <code class=\"gatsby-code-text\">null</code> para <a href=\"/docs/components-and-props.html#function-and-class-components\">componentes sem state</a>)</p>\n<p>Se o elemento do React foi previamente renderizado no <code class=\"gatsby-code-text\">container</code>, isso vai realizar uma atualização nele e só alterar o DOM conforme necessário para refletir o elemento do React mais recente.</p>\n<p>Se a <em>callback</em> opcional for fornecida, ela será executada depois do componente ser renderizado ou atualizado.</p>\n<blockquote>\n<p>Nota:</p>\n<p><code class=\"gatsby-code-text\">ReactDOM.render()</code> controla o conteúdo do nó contêiner que você passa. Qualquer elemento do DOM que existe dentro será substituído na primeira chamada. As próximas chamadas usam o algoritmo de diferenciação do React para atualizações eficientes.</p>\n<p><code class=\"gatsby-code-text\">ReactDOM.render()</code> não modifica o nó contêiner (só modifica os filhos do contêiner). Pode ser possível inserir um componente em um nó já existente no DOM sem sobrescrever os filhos existentes.</p>\n<p><code class=\"gatsby-code-text\">ReactDOM.render()</code> atualmente retorna uma referência à instância raiz de <code class=\"gatsby-code-text\">ReactComponent</code>. Porém, usar esse valor de retorno é legado\ne deve ser evitado porque versões futuras do React podem renderizar componentes assincronamente em alguns casos. Se você precisa de uma referência da instância raiz de <code class=\"gatsby-code-text\">ReactComponent</code>, a solução preferida é de anexar uma\n<a href=\"/docs/more-about-refs.html#the-ref-callback-attribute\">callback de ref</a> para o elemento raiz.</p>\n<p>Usar <code class=\"gatsby-code-text\">ReactDOM.render()</code> para hidratar um contêiner renderizado no servidor está deprecado e será removido no React 17. Ao invés disso, use <a href=\"#hydrate\"><code class=\"gatsby-code-text\">hydrate()</code></a>.</p>\n</blockquote>\n<hr>\n<h3 id=\"hydrate\"><a href=\"#hydrate\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><code class=\"gatsby-code-text\">hydrate()</code> </h3>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\">ReactDOM<span class=\"token punctuation\">.</span><span class=\"token function\">hydrate</span><span class=\"token punctuation\">(</span>element<span class=\"token punctuation\">,</span> container<span class=\"token punctuation\">[</span><span class=\"token punctuation\">,</span> callback<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span></code></pre></div>\n<p>O mesmo que <a href=\"#render\"><code class=\"gatsby-code-text\">render()</code></a>, mas é usado para hidratar um contêiner cujo o conteúdo HTML foi renderizado pelo <a href=\"/docs/react-dom-server.html\"><code class=\"gatsby-code-text\">ReactDOMServer</code></a>. O React tentará anexar <em>event listeners</em> ao <em>markup</em> existente.</p>\n<p>O React espera que o conteúdo renderizado seja idêntico entre o servidor e o cliente. Ele pode consertar diferenças no conteúdo de texto, mas você deve tratar incompatibilidades como erros e ajustá-las. Em modo de desenvolvimento, o React avisa sobre incompatibilidades durante a hidratação. Não existem garantias de que diferenças entre atributos serão consertadas em caso de incompatibilidade. Isso é importante por questões de performance porque na maioria dos aplicativos, incompatibilidades são raras e, portanto, validar todo o <em>markup</em> seria proibitivamente caro.</p>\n<p>Se um único atributo de elemento ou conteúdo de texto é inevitavelmente diferente entre o servidor e o cliente (como por exemplo, um <em>timestamp</em>), você pode silenciar o aviso adicionando <code class=\"gatsby-code-text\">suppressHydrationWarning={true}</code> ao elemento. Só funciona à um nível de profundidade, e destina-se a ser uma válvula de escape. Não use em excesso. A não ser que o conteúdo seja um texto, o React ainda não vai tentar consertar, então ele pode permanecer inconsistente até futuras atualizações.</p>\n<p>Se você precisa propositalmente renderizar algo diferente no servidor e no cliente, você pode fazer uma renderização de dois passos. Componentes que renderizam algo diferente no cliente podem ler uma variável de state como <code class=\"gatsby-code-text\">this.state.isClient</code>, que você pode atribuir o valor <code class=\"gatsby-code-text\">true</code> no <code class=\"gatsby-code-text\">componentDidMount()</code>. Dessa forma o passo de renderização inicial irá renderizar o mesmo conteúdo que o servidor, evitando incompatibilidades, mas um passo adicional acontecerá sincronamente logo após a hidratação. Note que essa abordagem fará seus componentes mais lentos porque eles tem de renderizar duas vezes, então use com cautela.</p>\n<p>Lembre-se de estar atento à experiência de usuário em conexões lentas. O código JavaScript pode carregar significativamente depois da renderização inicial do HTML, então se você renderizar algo diferente no passo do cliente, a transição pode ser áspera. No entanto, se executado bem, pode ser benéfico renderizar uma “casca” da aplicação no servidor, e só mostrar ferramentas extras no lado do cliente. Para aprender como fazer isso sem encontrar problemas de incompatibilidade do markup, consulte a explicação do parágrafo anterior.</p>\n<hr>\n<h3 id=\"unmountcomponentatnode\"><a href=\"#unmountcomponentatnode\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><code class=\"gatsby-code-text\">unmountComponentAtNode()</code> </h3>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\">ReactDOM<span class=\"token punctuation\">.</span><span class=\"token function\">unmountComponentAtNode</span><span class=\"token punctuation\">(</span>container<span class=\"token punctuation\">)</span></code></pre></div>\n<p>Remove do DOM um componente React já montado e limpa seus manipuladores de evento (<em>event handlers</em>) e estado (<em>state</em>). Se nenhum componente foi montado no contêiner, chamar essa função não faz nada. Retorna <code class=\"gatsby-code-text\">true</code> se um componente foi desmontado e <code class=\"gatsby-code-text\">false</code> se não tinha nenhum componente para desmontar.</p>\n<hr>\n<h3 id=\"finddomnode\"><a href=\"#finddomnode\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><code class=\"gatsby-code-text\">findDOMNode()</code> </h3>\n<blockquote>\n<p>Nota:</p>\n<p><code class=\"gatsby-code-text\">findDOMNode</code> é uma válvula de escape usada para acessar o nó subjacente do DOM. Na maioria dos casos, o uso dessa válvula de escape é desencorajado porque perfura a abstração do componente. <a href=\"/docs/strict-mode.html#warning-about-deprecated-finddomnode-usage\">Foi deprecado em <code class=\"gatsby-code-text\">StrictMode</code>.</a></p>\n</blockquote>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\">ReactDOM<span class=\"token punctuation\">.</span><span class=\"token function\">findDOMNode</span><span class=\"token punctuation\">(</span>component<span class=\"token punctuation\">)</span></code></pre></div>\n<p>Se esse componente foi montado no DOM, isso retorna o elemento do DOM nativo do navegador. Esse método é útil para ler valores fora do DOM, como valores de campos de formulário e realizar medições do DOM. <strong>Na maioria dos casos, você pode anexar uma ref ao nó do DOM e evitar completamente o uso de <code class=\"gatsby-code-text\">findDOMNode</code>.</strong></p>\n<p>Quando um componente renderiza <code class=\"gatsby-code-text\">null</code> ou <code class=\"gatsby-code-text\">false</code>, <code class=\"gatsby-code-text\">findDOMNode</code> retorna <code class=\"gatsby-code-text\">null</code>. Quando um componente renderiza uma string, <code class=\"gatsby-code-text\">findDOMNode</code> retorna um nó de texto do DOM contendo esse valor. A partir do React 16, um componente pode retornar um fragmento com múltiplos filhos, nesse caso <code class=\"gatsby-code-text\">findDOMNode</code> irá retornar o nó do DOM correspondente ao primeiro filho não vazio.</p>\n<blockquote>\n<p>Nota:</p>\n<p><code class=\"gatsby-code-text\">findDOMNode</code> só funciona em componentes montados (ou seja, componentes que foram postos no DOM). Se você tentar chamar isso em um componente que não foi montado ainda (como chamar <code class=\"gatsby-code-text\">findDOMNode()</code> no <code class=\"gatsby-code-text\">render()</code> em um componente que ainda tem que ser criado) uma exceção será lançada.</p>\n<p><code class=\"gatsby-code-text\">findDOMNode</code> não pode ser usado em componentes funcionais.</p>\n</blockquote>\n<hr>\n<h3 id=\"createportal\"><a href=\"#createportal\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><code class=\"gatsby-code-text\">createPortal()</code> </h3>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\">ReactDOM<span class=\"token punctuation\">.</span><span class=\"token function\">createPortal</span><span class=\"token punctuation\">(</span>child<span class=\"token punctuation\">,</span> container<span class=\"token punctuation\">)</span></code></pre></div>\n<p>Cria um portal. Portais provêm uma forma de <a href=\"/docs/portals.html\">renderizar filhos em um nó do DOM que existe fora da hierarquia do componente do DOM</a>.</p>","frontmatter":{"title":"ReactDOM","next":null,"prev":null},"fields":{"path":"content/docs/reference-react-dom.md","slug":"docs/react-dom.html"}}},"pageContext":{"slug":"docs/react-dom.html"}},"staticQueryHashes":[]}