Versão React v17.0: Atualização sem novos recursos

Depois do silêncio, o React anunciou o primeiro candidato a lançamento do React v17. O que chama a atenção neste lançamento é a parte considerada como central de qualquer lançamento relacionado ao desenvolvimento: Os novos recursos! Na versão 17, não há novos recursos, mas sim uma ideia de facilitar o processo de migração de uma versão anterior para uma nova. Os desenvolvedores poderão atualizar os seus aplicativos gradualmente ou de uma vez, pois as novas alterações introduzidas nos mecanismos de delegação de eventos permitem a coexistência de diferentes versões de React na mesma aplicação. Ou seja, o foco principal é a atualização do próprio React!

Updates graduais:

Algumas mudanças de API, como descontinuar uma API legado, são impossíveis de fazer de forma automatizada. Mesmo sendo pouco utilizadas, ainda há suporte para elas no React. O React 17 vem com a permissão de atualizações graduais, embora seja possível usar duas versões do React, isso causava problemas com eventos. Mas no React 17 em diantes, você terá mais opções, como atualizar todo o aplicativo de uma vez, mas também tendo a opção de atualizar seu aplicativo por partes.

Isso não quer dizer que será necessário fazer atualizações graduais do sistema. Para a maioria, atualizar tudo de uma só vez é a melhor ideia. Carregar duas versões do React não e a melhor solução. Para que possam ocorrer essas atualizações graduais, terá mudanças no sistema de eventos do React,

Mudanças de Eventos:

Nos componentes React, você geralmente escrevia os manipuladores de eventos embutidos:

<button onClick={eventoClick}>

E o seu equivalente no JavaScript seria:

meuBotao.addEventListener("click", eventoClick);

Para a maioria dos eventos, o React não anexa aos Nodes do DOM em que você declara. Em vez disso, anexa um manipulador de evento direto no nó document. Isso é chamado de delegação de evento.

Quando um evento DOM é disparado no documento, o React descobre qual componente deve ser chamado e “borbulha” para cima através de seus componentes.

Se você tiver várias versões do React na página, elas registram manipuladores de eventos na parte superior. Isso gera uma quebra e.stopPropagation(). Mesmo sendo interrompida a propagação de evento, a árvore externa ainda o receberia. É por isso que será alterada no React 17: Não haverá anexo de manipuladores de eventos no nível document. Então, ele os anexará ao contêiner DOM no qual o React é renderizado:

const noRoot = document.getElementById('root');
ReactDOM.render(<App />, noRoot);

Você pode conferir mais detalhes da atualização diretamente no site do React.

Gostou desta notícia? Comente abaixo!

Referências: