{"componentChunkName":"component---src-templates-blog-js","path":"/blog/2020/10/20/react-v17.html","result":{"data":{"markdownRemark":{"html":"<p>Hoje, nós estamos lançando o React 17! Escrevemos longamente sobre o papel da versão React 17 e as mudanças que ele contém na <a href=\"/blog/2020/08/10/react-v17-rc.html\">postagem do blog React 17 RC</a>. Este post é um breve resumo dele, então se você já leu o post RC, você pode pular este.</p>\n<h2 id=\"sem-novos-recursos\"><a href=\"#sem-novos-recursos\" 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>Sem novos recursos</h2>\n<p>A versão React 17 é incomum porque não adiciona nenhum novo recurso voltado para o desenvolvedor. Em vez disso, este lançamento está focado principalmente em <strong>tornar mais fácil atualizar o próprio React</strong>.</p>\n<p>Em particular, o React 17 é uma versão de “trampolim” que torna mais seguro incorporar uma árvore gerenciada por uma versão do React dentro de uma árvore gerenciada por uma versão diferente do React.</p>\n<p>Também torna mais fácil incorporar o React a aplicativos desenvolvidos com outras tecnologias.</p>\n<h2 id=\"upgrades-graduais\"><a href=\"#upgrades-graduais\" 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>Upgrades Graduais</h2>\n<p><strong>O React 17 permite atualizações graduais do React.</strong> Quando você atualiza do React 15 para o 16 (ou, desta vez, do React 16 para o 17), normalmente atualiza o aplicativo inteiro de uma vez. Isso funciona bem para muitos aplicativos. Mas pode se tornar cada vez mais desafiador se a base de código foi escrita há alguns anos e não é mantida ativamente. E embora seja possível usar duas versões do React na página, até o React 17 isso era frágil e causava problemas com eventos.</p>\n<p>Estamos corrigindo muitos desses problemas com o React 17. Isso significa que <strong>quando React 18 e as próximas versões futuras forem lançadas, você terá mais opções</strong>. A primeira opção será atualizar todo o seu aplicativo de uma vez, como você pode ter feito antes. Mas você também terá a opção de atualizar seu aplicativo peça por peça. Por exemplo, você pode decidir migrar a maior parte do seu aplicativo para o React 18, mas manter algumas caixas de diálogo carregadas lentamente ou um sub-rota no React 17.</p>\n<p>Isso não significa você <em>precise</em> fazer atualizações graduais. <strong>Para a maioria dos aplicativos, atualizar tudo de uma vez ainda é a melhor solução.</strong> Carregar duas versões do React - mesmo se uma delas for carregada lentamente sob demanda - ainda não é o ideal. No entanto, para aplicativos maiores que não são mantidos ativamente, faz sentido considerar essa opção, e o React 17 permite que esses aplicativos não sejam deixados para trás.</p>\n<p>Nós preparamos um <a href=\"https://github.com/reactjs/react-gradual-upgrade-demo/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">repositório de exemplo</a> demonstrando como carregar lentamente uma versão anterior do React, se necessário. Esta demonstração usa Create React App, mas deve ser possível seguir uma abordagem semelhante com qualquer outra ferramenta. Aceitamos demonstrações usando outras ferramentas como pull requests.</p>\n<blockquote>\n<p>Nota</p>\n<p><strong>Adiamos outras mudanças</strong> até depois do React 17. O objetivo desta versão é permitir atualizações graduais. Se atualizar para React 17 fosse muito difícil, isso iria contra o seu propósito.</p>\n</blockquote>\n<h2 id=\"mudanças-na-delegação-do-evento\"><a href=\"#mudan%C3%A7as-na-delega%C3%A7%C3%A3o-do-evento\" 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>Mudanças na Delegação do Evento</h2>\n<p>Para permitir atualizações graduais, precisamos fazer algumas mudanças no sistema de eventos React. O React 17 é um grande lançamento porque essas alterações são potencialmente prejudiciais. Você pode conferir nosso <a href=\"/docs/faq-versioning.html#breaking-changes\">FAQ de versionamento</a> para saber mais sobre nosso compromisso com a estabilidade.</p>\n<p>No React 17, o React não anexará mais manipuladores de eventos no nível do <code class=\"gatsby-code-text\">documento</code> sob o hood. Em vez disso, ele os anexará ao contêiner root DOM no qual sua árvore React é renderizada:</p>\n<div class=\"gatsby-highlight\" data-language=\"jsx\"><pre class=\"gatsby-code-jsx\"><code class=\"gatsby-code-jsx\"><span class=\"token keyword\">const</span> rootNode <span class=\"token operator\">=</span> document<span class=\"token punctuation\">.</span><span class=\"token function\">getElementById</span><span class=\"token punctuation\">(</span><span class=\"token string\">'root'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\nReactDOM<span class=\"token punctuation\">.</span><span class=\"token function\">render</span><span class=\"token punctuation\">(</span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span><span class=\"token class-name\">App</span></span> <span class=\"token punctuation\">/></span></span><span class=\"token punctuation\">,</span> rootNode<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>No React 16 e anteriores, o React faria <code class=\"gatsby-code-text\">document.addEventListener()</code> para a maioria dos eventos. React 17 ligará <code class=\"gatsby-code-text\">rootNode.addEventListener()</code> sob o hood em vez disso.</p>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/static/bb4b10114882a50090b8ff61b3c4d0fd/31868/react_17_delegation.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 840px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 77.14285714285715%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAYAAADkmO9VAAAACXBIWXMAAAsSAAALEgHS3X78AAACcUlEQVQ4y21T2W4TMRTNr0MfgDeEkPgSJF55JarUJSVpm07WaZLZV+/24XomE9LFypEd3zPnrh59nHFcED5MGT7fc/wIBL7OOT7ds+7O21/D878/CXwjfHnov7042kYhs/DYEnbcIpYOB+HwLIGQO7IZDJyBFxIvEh6u+2Z7Zh/htBz9bL8bAbO7AjTDu8u5427fmEaWjN7MtUHBOPKiRB7O0Nz/gkjm0G3a2TseHbS1KIVCUTfI8vxkGzByHbFHXdfYRwni9RSu3MAqBpWvYXhxDKyPjHOO/X7fwS9LTgbbaDhYY8AYQ11VOGQVZJPAippQwTQxZWdOaXnBgjJJkhjyRSVcX0NDHhqpwLQFbxtsSobn7ABIEpQNDMvgjOzSY1KjVQYNE1jscgTMYRm14Kp3OBqUGV0cuMFkFeJxl6AsI5iWhLSkPe0E/VLGIhUGQVrh5zjA9abCrpBYxexlynErcbmOMNnnmEQ15k8TsOrQRdWlfOT56O52KS43CcaLGL9nzyi4QFQqKO3Hhog+2CCr8TcXeGgtVlWLeTBBRBFLxSnl/FSniCncxRVuMoPHFvgTNphFJaLWQJvjHHLjcHsoMU1KzNISD0mKx3CLec5oPAoYrfrGERYFw+W+wXUqcVsajMO6E1xXCi3Vt4vQ0683ByypGUsq8oK6F9QK61ZDklcMo0W8ZdHiZht3L+kqFpjlCstGo1Q971TDgkss8wZPWYGAhNf07ErtXowEjg8gLGpMM4G7RGDF+mdoXs+hV2dEjqiDibRoTT/5/im6swj9f9/pRPRCFTk98/t/bM7uSAhvInuP589aU1mk7ODP/wCR7n8+8QwuZQAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"Um diagrama que mostra como o React 17 anexa eventos aos roots em vez de ao documento\"\n        title=\"\"\n        src=\"/static/bb4b10114882a50090b8ff61b3c4d0fd/1e088/react_17_delegation.png\"\n        srcset=\"/static/bb4b10114882a50090b8ff61b3c4d0fd/65ed1/react_17_delegation.png 210w,\n/static/bb4b10114882a50090b8ff61b3c4d0fd/d10fb/react_17_delegation.png 420w,\n/static/bb4b10114882a50090b8ff61b3c4d0fd/1e088/react_17_delegation.png 840w,\n/static/bb4b10114882a50090b8ff61b3c4d0fd/78612/react_17_delegation.png 1260w,\n/static/bb4b10114882a50090b8ff61b3c4d0fd/21cdd/react_17_delegation.png 1680w,\n/static/bb4b10114882a50090b8ff61b3c4d0fd/31868/react_17_delegation.png 3496w\"\n        sizes=\"(max-width: 840px) 100vw, 840px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>Nós confirmamos que <a href=\"https://github.com/facebook/react/issues/7094\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">numerosos</a> <a href=\"https://github.com/facebook/react/issues/8693\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">problemas</a> <a href=\"https://github.com/facebook/react/issues/12518\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">relatados</a> <a href=\"https://github.com/facebook/react/issues/13451\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">sobre</a> <a href=\"https://github.com/facebook/react/issues/4335\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">os</a> <a href=\"https://github.com/facebook/react/issues/1691\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">anos</a> <a href=\"https://github.com/facebook/react/issues/285#issuecomment-253502585\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">na</a> <a href=\"https://github.com/facebook/react/pull/8117\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">nossa</a> <a href=\"https://github.com/facebook/react/issues/11530\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">issue</a> <a href=\"https://github.com/facebook/react/issues/7128\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">rastreador</a> relacionadas à integração do React com o código não React foram corrigidas pelo novo comportamento.</p>\n<p>Se você tiver problemas com essa mudança, <a href=\"/blog/2020/08/10/react-v17-rc.html#fixing-potential-issues\">aqui está uma maneira comum de resolvê-los</a>.</p>\n<h2 id=\"outras-mudanças-importantes\"><a href=\"#outras-mudan%C3%A7as-importantes\" 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>Outras Mudanças Importantes</h2>\n<p><a href=\"/blog/2020/08/10/react-v17-rc.html#other-breaking-changes\">O post do blog React 17 RC</a> descreve o resto das mudanças significativas no React 17.</p>\n<p>Só tivemos que mudar menos de vinte componentes de mais de 100.000 no código de produto do Facebook para trabalhar com essas mudanças, então <strong>esperamos que a maioria dos aplicativos possa atualizar para React 17 sem muitos problemas</strong>. Por favor <a href=\"https://github.com/facebook/react/issues\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">nos conte</a> se você tiver problemas.</p>\n<h2 id=\"nova-transformação-jsx\"><a href=\"#nova-transforma%C3%A7%C3%A3o-jsx\" 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>Nova transformação JSX</h2>\n<p>React 17 apoia a <a href=\"/blog/2020/09/22/introducing-the-new-jsx-transform.html\">nova transformação JSX</a>. Também fizemos backport para ele para React 16.14.0, React 15.7.0 e 0.14.10. Observe que é totalmente opcional e você não precisa usá-lo. A transformação JSX clássica continuará funcionando e não há planos de deixar de suportá-la.</p>\n<h2 id=\"react-native\"><a href=\"#react-native\" 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>React Native</h2>\n<p>O React Native tem uma programação de lançamento separada. Atualmente esperamos que o suporte para React 17 chegue no React Native 0.65, mas a versão exata está sujeita a alterações. Como sempre, você pode acompanhar as discussões de lançamento nos lançamentos da React Native Community <a href=\"https://github.com/react-native-community/releases\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">rastreador de issues</a>.</p>\n<h2 id=\"installation\"><a href=\"#installation\" 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>Instalação </h2>\n<p>Para instalar React 17 com npm, rode:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"gatsby-code-bash\"><code class=\"gatsby-code-bash\"><span class=\"token function\">npm</span> <span class=\"token function\">install</span> react@17.0.0 react-dom@17.0.0</code></pre></div>\n<p>Para instalar React 17 com Yarn, rode:</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"gatsby-code-bash\"><code class=\"gatsby-code-bash\"><span class=\"token function\">yarn</span> <span class=\"token function\">add</span> react@17.0.0 react-dom@17.0.0</code></pre></div>\n<p>Também fornecemos compilações UMD do React por meio de um CDN:</p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"gatsby-code-html\"><code class=\"gatsby-code-html\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span> <span class=\"token attr-name\">crossorigin</span> <span class=\"token attr-name\">src</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>https://unpkg.com/react@17.0.0/umd/react.production.min.js<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token script\"></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span> <span class=\"token attr-name\">crossorigin</span> <span class=\"token attr-name\">src</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>https://unpkg.com/react-dom@17.0.0/umd/react-dom.production.min.js<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token script\"></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span></code></pre></div>\n<p>Consulte a documentação para <a href=\"/docs/installation.html\">instruções de instalação detalhadas</a>.</p>\n<h2 id=\"changelog\"><a href=\"#changelog\" 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>Changelog </h2>\n<h3 id=\"react\"><a href=\"#react\" 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>React </h3>\n<ul>\n<li>Adiciona <code class=\"gatsby-code-text\">react/jsx-runtime</code> e <code class=\"gatsby-code-text\">react/jsx-dev-runtime</code> para o <a href=\"https://babeljs.io/blog/2020/03/16/7.9.0#a-new-jsx-transform-11154-https-githubcom-babel-babel-pull-11154\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">new JSX transform</a>. (<a href=\"https://github.com/lunaruan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lunaruan</a> em <a href=\"https://github.com/facebook/react/pull/18299\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18299</a>)</li>\n<li>Crie pilhas de componentes a partir de frames de erro nativos. (<a href=\"https://github.com/sebmarkbage\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sebmarkbage</a> em <a href=\"https://github.com/facebook/react/pull/18561\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18561</a>)</li>\n<li>Permite especificar <code class=\"gatsby-code-text\">displayName</code> no contexto para pilhas aprimoradas. (<a href=\"https://github.com/eps1lon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@eps1lon</a> em <a href=\"https://github.com/facebook/react/pull/18224\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18224</a>)</li>\n<li>Evita <code class=\"gatsby-code-text\">&#39;use strict&#39;</code> de vazamento nos pacotes UMD. (<a href=\"https://github.com/koba04\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@koba04</a> em <a href=\"https://github.com/facebook/react/pull/19614\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19614</a>)</li>\n<li>Para de usar <code class=\"gatsby-code-text\">fb.me</code> para redirecionamentos. (<a href=\"https://github.com/cylim\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@cylim</a> em <a href=\"https://github.com/facebook/react/pull/19598\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19598</a>)</li>\n</ul>\n<h3 id=\"react-dom\"><a href=\"#react-dom\" 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>React DOM </h3>\n<ul>\n<li>Delega eventos aos roots em vez de <code class=\"gatsby-code-text\">document</code>. (<a href=\"https://github.com/trueadm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@trueadm</a> em <a href=\"https://github.com/facebook/react/pull/18195\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18195</a> e <a href=\"https://github.com/facebook/react/pulls?q=is%3Apr+author%3Atrueadm+modern+event+is%3Amerged\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">others</a>)</li>\n<li>Limpa todos os efeitos antes de executar os próximos efeitos. (<a href=\"https://github.com/bvaughn\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bvaughn</a> em <a href=\"https://github.com/facebook/react/pull/17947\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#17947</a>)</li>\n<li>Roda <code class=\"gatsby-code-text\">useEffect</code> limpando funções assíncronas. (<a href=\"https://github.com/bvaughn\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bvaughn</a> em <a href=\"https://github.com/facebook/react/pull/17925\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#17925</a>)</li>\n<li>Usa o navegador <code class=\"gatsby-code-text\">focusin</code> e <code class=\"gatsby-code-text\">focusout</code> para <code class=\"gatsby-code-text\">onFocus</code> e <code class=\"gatsby-code-text\">onBlur</code>. (<a href=\"https://github.com/trueadm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@trueadm</a> em <a href=\"https://github.com/facebook/react/pull/19186\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19186</a>)</li>\n<li>Faz com que eventos <code class=\"gatsby-code-text\">Capture</code> usem a fase de captura do navegador. (<a href=\"https://github.com/trueadm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@trueadm</a> em <a href=\"https://github.com/facebook/react/pull/19221\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19221</a>)</li>\n<li>Não imita o borbulhar do evento <code class=\"gatsby-code-text\">onScroll</code>. (<a href=\"https://github.com/gaearon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gaearon</a> em <a href=\"https://github.com/facebook/react/pull/19464\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19464</a>)</li>\n<li>Lança se o componente <code class=\"gatsby-code-text\">forwardRef</code> ou<code class=\"gatsby-code-text\">memo</code> retornar ʻundefined`. (<a href=\"https://github.com/gaearon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gaearon</a> em <a href=\"https://github.com/facebook/react/pull/19550\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19550</a>)</li>\n<li>Remove o pool de eventos. (<a href=\"https://github.com/trueadm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@trueadm</a> em <a href=\"https://github.com/facebook/react/pull/18969\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18969</a>)</li>\n<li>Para de expor detalhes internos que não serão necessários para o React Native Web. (<a href=\"https://github.com/necolas\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@necolas</a> em <a href=\"https://github.com/facebook/react/pull/18483\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18483</a>)</li>\n<li>Anexa todos os ouvintes de eventos conhecidos quando o hoot for montado. (<a href=\"https://github.com/gaearon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gaearon</a> em <a href=\"https://github.com/facebook/react/pull/19659\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19659</a>)</li>\n<li>Desabilita <code class=\"gatsby-code-text\">console</code> na segunda passagem de renderização do modo DEV, renderização dupla. (<a href=\"https://github.com/sebmarkbage\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sebmarkbage</a> em <a href=\"https://github.com/facebook/react/pull/18547\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18547</a>)</li>\n<li>Rejeita o não documentado e enganoso API do <code class=\"gatsby-code-text\">ReactTestUtils.SimulateNative</code>. (<a href=\"https://github.com/gaearon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gaearon</a> em <a href=\"https://github.com/facebook/react/pull/13407\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#13407</a>)</li>\n<li>Renomeia os nomes dos campos privados usados ​​nos internos. (<a href=\"https://github.com/gaearon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gaearon</a> em <a href=\"https://github.com/facebook/react/pull/18377\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18377</a>)</li>\n<li>Não chama a API User Timing no desenvolvimento. (<a href=\"https://github.com/gaearon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gaearon</a> em <a href=\"https://github.com/facebook/react/pull/18417\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18417</a>)</li>\n<li>Desabilita o console durante a renderização repetida no modo estrito. (<a href=\"https://github.com/sebmarkbage\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sebmarkbage</a> em <a href=\"https://github.com/facebook/react/pull/18547\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18547</a>)</li>\n<li>No Modo Estrito, os componentes de renderização dupla sem Hooks. (<a href=\"https://github.com/eps1lon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@eps1lon</a> em <a href=\"https://github.com/facebook/react/pull/18430\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18430</a>)</li>\n<li>Permite chamadas <code class=\"gatsby-code-text\">ReactDOM.flushSync</code> durante os métodos de ciclo de vida (com aviso). (<a href=\"https://github.com/sebmarkbage\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sebmarkbage</a> em <a href=\"https://github.com/facebook/react/pull/18759\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18759</a>)</li>\n<li>Adiciona a propriedade <code class=\"gatsby-code-text\">code</code> aos objetos de evento do teclado. (<a href=\"https://github.com/bl00mber\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bl00mber</a> em <a href=\"https://github.com/facebook/react/pull/18287\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18287</a>)</li>\n<li>Adiciona a propriedade <code class=\"gatsby-code-text\">disableRemotePlayback</code> para elementos <code class=\"gatsby-code-text\">video</code>. (<a href=\"https://github.com/tombrowndev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@tombrowndev</a> em <a href=\"https://github.com/facebook/react/pull/18619\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18619</a>)</li>\n<li>Adiciona a propriedade <code class=\"gatsby-code-text\">enterKeyHint</code> para elementos <code class=\"gatsby-code-text\">input</code>. (<a href=\"https://github.com/eps1lon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@eps1lon</a> em <a href=\"https://github.com/facebook/react/pull/18634\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18634</a>)</li>\n<li>Avisa quando <code class=\"gatsby-code-text\">value</code> não é fornecido para <code class=\"gatsby-code-text\">&lt;Context.Provider&gt;</code>. (<a href=\"https://github.com/charlie1404\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@charlie1404</a> em <a href=\"https://github.com/facebook/react/pull/19054\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19054</a>)</li>\n<li>Avisa quando o componente<code class=\"gatsby-code-text\">memo</code> ou <code class=\"gatsby-code-text\">forwardRef</code> retorna <code class=\"gatsby-code-text\">undefined</code>. (<a href=\"https://github.com/bvaughn\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bvaughn</a> em <a href=\"https://github.com/facebook/react/pull/19550\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19550</a>)</li>\n<li>Melhora a mensagem de erro para atualizações inválidas. (<a href=\"https://github.com/JoviDeCroock\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@JoviDeCroock</a> em <a href=\"https://github.com/facebook/react/pull/18316\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18316</a>)</li>\n<li>Exclui forwardRef e memo dos frames da pilha. (<a href=\"https://github.com/sebmarkbage\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sebmarkbage</a> em <a href=\"https://github.com/facebook/react/pull/18559\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18559</a>)</li>\n<li>Melhora a mensagem de erro ao alternar entre entradas controladas e não controladas. (<a href=\"https://github.com/vcarl\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@vcarl</a> em <a href=\"https://github.com/facebook/react/pull/17070\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#17070</a>)</li>\n<li>Mantém <code class=\"gatsby-code-text\">onTouchStart</code>, <code class=\"gatsby-code-text\">onTouchMove</code>, e <code class=\"gatsby-code-text\">onWheel</code> passivo. (<a href=\"https://github.com/gaearon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gaearon</a> em <a href=\"https://github.com/facebook/react/pull/19654\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19654</a>)</li>\n<li>Conserta <code class=\"gatsby-code-text\">setState</code> em desenvolvimento dentro de um iframe fechado. (<a href=\"https://github.com/gaearon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gaearon</a> em <a href=\"https://github.com/facebook/react/pull/19220\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19220</a>)</li>\n<li>Corrige resgate de renderização para componentes lentos com <code class=\"gatsby-code-text\">defaultProps</code>. (<a href=\"https://github.com/jddxf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jddxf</a> em <a href=\"https://github.com/facebook/react/pull/18539\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18539</a>)</li>\n<li>Corrige um aviso de falso positivo quando <code class=\"gatsby-code-text\">dangerouslySetInnerHTML</code> é <code class=\"gatsby-code-text\">undefined</code>. (<a href=\"https://github.com/eps1lon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@eps1lon</a> em <a href=\"https://github.com/facebook/react/pull/18676\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18676</a>)</li>\n<li>Corrige utilitários de teste fora do padrão de implementação <code class=\"gatsby-code-text\">require</code>. (<a href=\"https://github.com/just-boris\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@just-boris</a> em <a href=\"https://github.com/facebook/react/pull/18632\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18632</a>)</li>\n<li>Corrige <code class=\"gatsby-code-text\">onBeforeInput</code> relatando um incorreto <code class=\"gatsby-code-text\">event.type</code>. (<a href=\"https://github.com/eps1lon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@eps1lon</a> em <a href=\"https://github.com/facebook/react/pull/19561\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19561</a>)</li>\n<li>Corrige <code class=\"gatsby-code-text\">event.relatedTarget</code> relatado como <code class=\"gatsby-code-text\">undefined</code> em Firefox. (<a href=\"https://github.com/claytercek\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@claytercek</a> em <a href=\"https://github.com/facebook/react/pull/19607\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19607</a>)</li>\n<li>Corrige “erro não especificado” em IE11. (<a href=\"https://github.com/hemakshis\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@hemakshis</a> em <a href=\"https://github.com/facebook/react/pull/19664\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19664</a>)</li>\n<li>Corrige a renderização em uma sombra root. (<a href=\"https://github.com/Jack-Works\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@Jack-Works</a> em <a href=\"https://github.com/facebook/react/pull/15894\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#15894</a>)</li>\n<li>Corrige <code class=\"gatsby-code-text\">movementX/Y</code> polyfill com eventos de captura. (<a href=\"https://github.com/gaearon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gaearon</a> em <a href=\"https://github.com/facebook/react/pull/19672\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19672</a>)</li>\n<li>Usa delegação para <code class=\"gatsby-code-text\">onSubmit</code> e <code class=\"gatsby-code-text\">onReset</code> eventos. (<a href=\"https://github.com/gaearon\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@gaearon</a> em <a href=\"https://github.com/facebook/react/pull/19333\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19333</a>)</li>\n<li>Melhora o uso de memória. (<a href=\"https://github.com/trueadm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@trueadm</a> em <a href=\"https://github.com/facebook/react/pull/18970\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18970</a>)</li>\n</ul>\n<h3 id=\"react-dom-server\"><a href=\"#react-dom-server\" 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>React DOM Server </h3>\n<ul>\n<li>Torne o comportamento do <code class=\"gatsby-code-text\">useCallback</code> consistente com ʻuseMemo` para o renderizador do servidor.(<a href=\"https://github.com/alexmckenley\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@alexmckenley</a> em <a href=\"https://github.com/facebook/react/pull/18783\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18783</a>)</li>\n<li>Corrige o vazamento de estado quando um componente de função é acionado. (<a href=\"https://github.com/pmaccart\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@pmaccart</a> em <a href=\"https://github.com/facebook/react/pull/19212\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19212</a>)</li>\n</ul>\n<h3 id=\"react-test-renderer\"><a href=\"#react-test-renderer\" 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>React Test Renderer </h3>\n<ul>\n<li>Melhora <code class=\"gatsby-code-text\">findByType</code> mensagem de erro. (<a href=\"https://github.com/henryqdineen\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@henryqdineen</a> em <a href=\"https://github.com/facebook/react/pull/17439\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#17439</a>)</li>\n</ul>\n<h3 id=\"concurrent-mode-experimental\"><a href=\"#concurrent-mode-experimental\" 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>Modo Simultâneo (Experimental) </h3>\n<ul>\n<li>Renova as heurísticas de lote de prioridade. (<a href=\"https://github.com/acdlite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@acdlite</a> em <a href=\"https://github.com/facebook/react/pull/18796\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18796</a>)</li>\n<li>Adiciona o prefixo <code class=\"gatsby-code-text\">unstable_</code> antes do experimental APIs. (<a href=\"https://github.com/acdlite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@acdlite</a> em <a href=\"https://github.com/facebook/react/pull/18825\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18825</a>)</li>\n<li>Remove <code class=\"gatsby-code-text\">unstable_discreteUpdates</code> e <code class=\"gatsby-code-text\">unstable_flushDiscreteUpdates</code>. (<a href=\"https://github.com/trueadm\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@trueadm</a> em <a href=\"https://github.com/facebook/react/pull/18825\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18825</a>)</li>\n<li>Remove o argumento <code class=\"gatsby-code-text\">timeoutMs</code>. (<a href=\"https://github.com/acdlite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@acdlite</a> em <a href=\"https://github.com/facebook/react/pull/19703\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19703</a>)</li>\n<li>Desabilita pré-renderização <code class=\"gatsby-code-text\">&lt;div hidden /&gt;</code> em favor de uma futura API diferente. (<a href=\"https://github.com/acdlite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@acdlite</a> em <a href=\"https://github.com/facebook/react/pull/18917\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18917</a>)</li>\n<li>Adiciona <code class=\"gatsby-code-text\">unstable_expectedLoadTime</code> ao Suspense para árvores vinculadas à CPU. (<a href=\"https://github.com/acdlite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@acdlite</a> in <a href=\"https://github.com/facebook/react/pull/19936\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19936</a>)</li>\n<li>Adiciona um Hook experimental <code class=\"gatsby-code-text\">unstable_useOpaqueIdentifier</code>. (<a href=\"https://github.com/lunaruan\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@lunaruan</a> em <a href=\"https://github.com/facebook/react/pull/17322\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#17322</a>)</li>\n<li>Adiciona uma API experimental <code class=\"gatsby-code-text\">unstable_startTransition</code>. (<a href=\"https://github.com/rickhanlonii\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@rickhanlonii</a> em <a href=\"https://github.com/facebook/react/pull/19696\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19696</a>)</li>\n<li>Usando <code class=\"gatsby-code-text\">act</code> no renderizador de teste não libera mais fallbacks do Suspense. (<a href=\"https://github.com/acdlite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@acdlite</a> em <a href=\"https://github.com/facebook/react/pull/18596\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18596</a>)</li>\n<li>Usa o tempo limite de renderização global para CPU Suspense. (<a href=\"https://github.com/sebmarkbage\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sebmarkbage</a> em <a href=\"https://github.com/facebook/react/pull/19643\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#19643</a>)</li>\n<li>Limpa o conteúdo hoot existente antes da montagem. (<a href=\"https://github.com/bvaughn\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bvaughn</a> em <a href=\"https://github.com/facebook/react/pull/18730\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18730</a>)</li>\n<li>Corrige um bug com limites de erro. (<a href=\"https://github.com/acdlite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@acdlite</a> em <a href=\"https://github.com/facebook/react/pull/18265\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18265</a>)</li>\n<li>Corrige um bug que causava atualizações perdidas em uma árvore suspensa. (<a href=\"https://github.com/acdlite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@acdlite</a> em <a href=\"https://github.com/facebook/react/pull/18384\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18384</a> e <a href=\"https://github.com/facebook/react/pull/18457\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18457</a>)</li>\n<li>Corrige um bug que causava atualizações da fase de renderização perdidas (<a href=\"https://github.com/acdlite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@acdlite</a> em <a href=\"https://github.com/facebook/react/pull/18537\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18537</a>)</li>\n<li>Corrige um bug em SuspenseList. (<a href=\"https://github.com/sebmarkbage\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sebmarkbage</a> em <a href=\"https://github.com/facebook/react/pull/18412\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18412</a>)</li>\n<li>Corrige um bug que fazia com que o substituto do Suspense fosse exibido muito cedo. (<a href=\"https://github.com/acdlite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@acdlite</a> em <a href=\"https://github.com/facebook/react/pull/18411\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18411</a>)</li>\n<li>Corrige um bug com componentes de classe dentro de SuspenseList. (<a href=\"https://github.com/sebmarkbage\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sebmarkbage</a> em <a href=\"https://github.com/facebook/react/pull/18448\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18448</a>)</li>\n<li>Corrige um bug com inputs que pode fazer com que as atualizações sejam descartadas. (<a href=\"https://github.com/jddxf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@jddxf</a> em <a href=\"https://github.com/facebook/react/pull/18515\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18515</a> e <a href=\"https://github.com/acdlite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@acdlite</a> em <a href=\"https://github.com/facebook/react/pull/18535\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18535</a>)</li>\n<li>Corrige um bug que fazia com que o recurso de suspensão do Suspense travasse.  (<a href=\"https://github.com/acdlite\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@acdlite</a> em <a href=\"https://github.com/facebook/react/pull/18663\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18663</a>)</li>\n<li>Não corta a tail de uma SuspenseList se carregando informações. (<a href=\"https://github.com/sebmarkbage\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sebmarkbage</a> em <a href=\"https://github.com/facebook/react/pull/18854\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18854</a>)</li>\n<li>Conserta um bug em <code class=\"gatsby-code-text\">useMutableSource</code> isso pode acontecer quando alterações<code class=\"gatsby-code-text\">getSnapshot</code>. (<a href=\"https://github.com/bvaughn\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bvaughn</a> em <a href=\"https://github.com/facebook/react/pull/18297\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18297</a>)</li>\n<li>Corrige um sério bug em <code class=\"gatsby-code-text\">useMutableSource</code>. (<a href=\"https://github.com/bvaughn\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@bvaughn</a> em <a href=\"https://github.com/facebook/react/pull/18912\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18912</a>)</li>\n<li>Avisa se chamando setState fora da renderização, mas antes do commit. (<a href=\"https://github.com/sebmarkbage\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">@sebmarkbage</a> em <a href=\"https://github.com/facebook/react/pull/18838\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">#18838</a>)</li>\n</ul>","excerpt":"Hoje, nós estamos lançando o React 17! Escrevemos longamente sobre o papel da versão React 17 e as mudanças que ele contém na postagem do blog React 17 RC. Este post é um breve resumo dele, então se você já leu o post RC, você pode pular este. Sem novos recursos A versão React 17 é incomum porque não adiciona nenhum novo recurso voltado para o desenvolvedor. Em vez disso, este lançamento está focado principalmente em tornar mais fácil atualizar o próprio React. Em particular, o React 17 é uma…","frontmatter":{"title":"React v17.0","next":null,"prev":null,"author":[{"frontmatter":{"name":"Dan Abramov","url":"https://twitter.com/dan_abramov"}},{"frontmatter":{"name":"Rachel Nabors","url":"https://twitter.com/rachelnabors"}}]},"fields":{"date":"20 de outubro de 2020","path":"content/blog/2020-10-20-react-v17.md","slug":"/blog/2020/10/20/react-v17.html"}},"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"title":"React v17.0"},"fields":{"slug":"/blog/2020/10/20/react-v17.html"}}},{"node":{"frontmatter":{"title":"Apresentando o novo JSX Transform"},"fields":{"slug":"/blog/2020/09/22/introducing-the-new-jsx-transform.html"}}},{"node":{"frontmatter":{"title":"React v17.0 Candidato à lançamento: Sem novas funcionalidades"},"fields":{"slug":"/blog/2020/08/10/react-v17-rc.html"}}},{"node":{"frontmatter":{"title":"React v16.13.0"},"fields":{"slug":"/blog/2020/02/26/react-v16.13.0.html"}}},{"node":{"frontmatter":{"title":"Construindo Ótimas Experiências de Usuário com Modo Concorrente e Suspense"},"fields":{"slug":"/blog/2019/11/06/building-great-user-experiences-with-concurrent-mode-and-suspense.html"}}},{"node":{"frontmatter":{"title":"Preparando para o Futuro com as Prereleases React"},"fields":{"slug":"/blog/2019/10/22/react-release-channels.html"}}},{"node":{"frontmatter":{"title":"Apresentando o novo React DevTools"},"fields":{"slug":"/blog/2019/08/15/new-react-devtools.html"}}},{"node":{"frontmatter":{"title":"React v16.9.0 e a atualização do Roadmap"},"fields":{"slug":"/blog/2019/08/08/react-v16.9.0.html"}}},{"node":{"frontmatter":{"title":"O React já esta traduzido? ¡Sí! Sim! はい！"},"fields":{"slug":"/blog/2019/02/23/is-react-translated-yet.html"}}},{"node":{"frontmatter":{"title":"React v16.8: O React com Hooks"},"fields":{"slug":"/blog/2019/02/06/react-v16.8.0.html"}}}]}},"pageContext":{"slug":"/blog/2020/10/20/react-v17.html"}},"staticQueryHashes":[]}