React Native Windows 0.85: novidades e como atualizar

O React Native Windows 0.85 chegou em outubro de 2026, construído sobre o React Native 0.85.3, e encerra de vez a transição para a nova arquitetura. Além disso, a versão exige Visual Studio 2026, .NET 10 e Windows App SDK 1.8, traz novos recursos para componentes e corrige dezenas de problemas de toque, texto, acessibilidade e renderização.
O que é o React Native Windows
O React Native Windows é um projeto open source da Microsoft que permite criar aplicativos nativos para Windows com React e JavaScript. Ele estende o React Native, que nasceu para Android e iOS, e leva o mesmo modelo de componentes para o desktop.
Diferente de uma aplicação React que roda no navegador, o React Native Windows desenha controles nativos do sistema. Por isso, o aplicativo final se comporta como um app de Windows de verdade, com acessibilidade, foco de teclado e integração com a plataforma.
A proposta resume bem o lema do React Native: aprender uma vez e escrever para qualquer plataforma. Na prática, um time com experiência em React reaproveita conhecimento, componentes e boa parte da lógica de negócio para chegar ao desktop.
A documentação do Microsoft Learn também posiciona o React Native for Desktop como uma opção para equipes com forte bagagem em front-end. Nesse cenário, o mesmo código JavaScript pode atender Windows, macOS, Android e iOS.
O que muda no React Native Windows 0.85
A versão 0.85.0 reúne os commits feitos no repositório entre 1º de abril e 19 de outubro de 2026. Em outras palavras, são mais de seis meses de trabalho concentrados em um único lançamento estável.
O anúncio oficial destaca três eixos principais. Primeiro, a conclusão da migração para a nova arquitetura; em seguida, a atualização da cadeia de ferramentas de build; por fim, novos recursos e correções em componentes.
Apenas a nova arquitetura
A mudança mais importante do React Native Windows 0.85 está na arquitetura. A equipe removeu a arquitetura legada, e agora todo aplicativo precisa rodar sobre o Fabric, o novo renderizador do React Native.
Vale lembrar que o renderizador antigo, conhecido como Paper, já tinha saído do projeto na versão 0.82. Agora, a versão 0.85 conclui o processo ao ativar a flag RCT_REMOVE_LEGACY_ARCH, que elimina o código legado restante.
Portanto, aplicativos que ainda usam a arquitetura antiga precisam migrar para o Fabric antes de atualizar. Projetos novos não sentem essa mudança, porque o template padrão já cria aplicações na nova arquitetura.
Essa decisão simplifica a manutenção do próprio framework. Com apenas um caminho de renderização, a equipe consegue concentrar esforços em desempenho, acessibilidade e paridade de propriedades com as outras plataformas.
Nova cadeia de ferramentas do React Native Windows
O segundo ponto de atenção está no ambiente de build. O React Native Windows 0.85 passa a exigir três componentes atualizados na máquina de desenvolvimento e no pipeline de integração contínua.
| Requisito | Versão exigida |
|---|---|
| Visual Studio | 2026 |
| .NET | 10 |
| Windows App SDK | 1.8 (Microsoft.WindowsAppSDK 1.8.260508005) |
Além disso, a release atualiza dependências internas, como o boost 1.84, o hermes-windows e o PowerShell 7. Por isso, a recomendação oficial é atualizar o ambiente de build antes de trocar a versão do pacote.
Na prática, quem mantém agentes de build próprios precisa revisar as imagens antes da migração. Caso contrário, a compilação falha logo nos primeiros passos, mesmo que o código JavaScript continue correto.
Componentes novos no React Native Windows
Além das mudanças estruturais, a versão traz recursos que aproximam o comportamento do Windows das expectativas de design e acessibilidade. Nenhum deles exige mudança em código existente, porque todos são opcionais.
Modal sem barra de título e sem borda
O componente Modal ganhou as propriedades hideTitleBar e hideBorder. Com elas, o aplicativo apresenta diálogos sem a barra de título nativa ou sem a borda padrão da janela.
Esse controle ajuda quando o design pede um diálogo totalmente customizado. Por exemplo, uma janela de confirmação com cabeçalho próprio não precisa mais conviver com a barra do sistema.
import React, { useState } from 'react';
import { Modal, Pressable, StyleSheet, Text, View } from 'react-native';
export function ConfirmDialog() {
const [visible, setVisible] = useState(false);
// hideTitleBar e hideBorder escondem a barra de título e a borda nativas no Windows
return (
<View>
<Pressable onPress={() => setVisible(true)}>
<Text>Open dialog</Text>
</Pressable>
<Modal
visible={visible}
transparent
hideTitleBar
hideBorder
onRequestClose={() => setVisible(false)}
>
<View style={styles.dialog}>
<Text style={styles.title}>Delete file?</Text>
<Pressable onPress={() => setVisible(false)}>
<Text>Cancel</Text>
</Pressable>
</View>
</Modal>
</View>
);
}
const styles = StyleSheet.create({
dialog: { padding: 24, backgroundColor: '#ffffff' },
title: { fontSize: 18, marginBottom: 16 },
});
Nesse exemplo, o componente ConfirmDialog abre um diálogo com cabeçalho e ações próprios. Assim, todo o visual fica sob controle do estilo dialog, sem elementos nativos sobrepostos.
Estilos de outline na View
A View agora implementa as propriedades de estilo de outline. Com isso, mais uma parte da API de estilos do React Native passa a funcionar no Windows da mesma forma que nas outras plataformas.
O contorno desenha uma linha ao redor do elemento sem alterar o seu tamanho no layout. Por isso, ele funciona bem para indicar foco, seleção ou destaque sem empurrar os elementos vizinhos.
import { StyleSheet } from 'react-native';
// o outline não altera o tamanho do card no layout
export const styles = StyleSheet.create({
selectedCard: {
outlineWidth: 2,
outlineStyle: 'solid',
outlineColor: '#2563eb',
outlineOffset: 4,
},
});
Inicialização antecipada de TurboModules
Os TurboModules são os módulos nativos da nova arquitetura. Normalmente, o React Native inicializa cada um deles apenas quando o JavaScript faz o primeiro acesso.
A versão 0.85 permite inicializar um TurboModule de forma antecipada, antes da primeira chamada. Esse comportamento é opcional e atende aplicativos que precisam do módulo nativo pronto logo na abertura.
Segundo o pull request da funcionalidade, existem dois caminhos. O primeiro usa o novo atributo REACT_EAGER_TURBO_MODULE em módulos declarados com atributos; o segundo troca AddTurboModule por AddEagerInitTurboModule no registro manual do pacote.
Use esse recurso com moderação, porque cada módulo antecipado consome tempo durante a inicialização do aplicativo. Ou seja, ele faz sentido para serviços realmente críticos, como configuração ou telemetria inicial.
Tooltips, eventos e acesso à janela Win32
As tooltips agora aparecem também quando o elemento recebe foco pelo teclado. Além disso, apenas uma tooltip fica visível por vez, o que segue o comportamento esperado de teclado e acessibilidade no Windows.
A release no GitHub também cita o suporte ao evento onAuxClick. Esse evento permite reagir a cliques com botões auxiliares do mouse, como o botão do meio.
Para aplicativos Win32, o ReactNativeWin32App agora expõe o ReactNativeWindow. Dessa forma, o código nativo acessa diretamente a janela que hospeda o conteúdo React, sem soluções paralelas.
Correções de estabilidade no React Native Windows
Boa parte do React Native Windows 0.85 é dedicada à confiabilidade. O anúncio alerta que algumas correções podem mudar o comportamento percebido durante a atualização, então vale testar os fluxos principais.
Texto e entrada
O TextInput agora escala corretamente em telas com fatores de escala diferentes. Antes, o campo podia aparecer desproporcional em monitores com configurações de escala distintas.
A versão também corrige o cálculo do tamanho de textos com Unicode. Isso afeta diretamente contadores de caracteres, limites de entrada e textos com emojis ou acentos combinados.
Outra correção relevante elimina um travamento no TextInput multilinha. O problema vinha de uma reentrada no TxDrawD2D, a rotina de desenho de texto, e derrubava o aplicativo em cenários específicos.
Por fim, a equipe corrigiu um assert em builds x86 que aparecia ao usar alinhamento customizado.
Toque e ScrollView
O tratamento de eventos de toque ficou mais confiável e mais rápido. Entre os problemas resolvidos estão toques presos ou toques mortos em elementos Pressable dentro de ScrollView em telas de alta densidade.
A rolagem por teclado também deixou de deslizar além do esperado quando o usuário segura uma tecla. Além disso, toques que permaneciam ativos depois da perda de captura do ponteiro agora são cancelados corretamente.
Duas mudanças internas completam o pacote. O campo isPrimary passa a usar o método IsPrimary() do Windows, e os identificadores de ponteiro de toque viram números pequenos e seguros para o JavaScript.
Renderização, acessibilidade e runtime
Na renderização, a versão corrige problemas com bordas arredondadas e com a Image que nem sempre redesenhava ao trocar a origem. Também melhora o contraste da barra de título do Modal quando a janela nativa fica inativa.
Na acessibilidade, o React Native Windows agora dispara eventos de seleção do UI Automation sempre que accessibilityState.selected muda. Assim, leitores de tela percebem a seleção de itens sem atrasos.
No runtime, três correções merecem destaque:
- um travamento ao obter o runtime durante o encerramento da instância;
- uma condição de corrida que podia entregar um runtime nulo ao call invoker;
- o tratamento de
binaryTypeem mensagens binárias de WebSocket.
A equipe também removeu as implementações legadas WinRTWebSocketResource e JSBigStringResourceDll. Embora sejam internas, forks nativos que tocavam esses tipos podem precisar de ajustes.
Performance, CLI e templates do React Native Windows
Em desempenho, a novidade é a melhoria na renderização de texto. Como texto aparece em praticamente toda tela, o ganho tende a beneficiar qualquer aplicativo React Native Windows sem mudança de código.
A CLI também evoluiu. O comando run-windows ganhou a opção --port, que permite iniciar e verificar o Metro em uma porta diferente da padrão 8081.
Antes, a verificação de status e a inicialização do Metro estavam fixas na porta 8081. Por isso, quando outra ferramenta ocupava essa porta, a única saída era usar --no-packager e iniciar o Metro manualmente.
# inicia o app e o Metro na porta 9000
npx react-native run-windows --port 9000
Nos templates, as configurações de build de debug e de release ficaram mais consistentes. Além disso, o template importa Microsoft.Cpp.Default.props antes de definir ReactNativeWindowsDir, e os templates de NativeModule passaram a funcionar com o clang.
Para ver tudo isso em funcionamento, a Microsoft atualizou o React Native Gallery na Microsoft Store. O pacote 2.1.10.0 usa o React Native Windows 0.85.0 e mostra cada componente rodando no Windows.
Segundo a equipe, o Gallery é o caminho mais rápido para ver como cada componente se comporta no Windows. Por isso, ele também serve de referência durante uma migração, já que permite comparar o comportamento esperado com o do seu próprio aplicativo.
Como atualizar para o React Native Windows 0.85
A atualização segue uma ordem lógica. Primeiro valide a arquitetura, depois prepare o ambiente e só então troque as versões dos pacotes.
O primeiro passo é confirmar que o aplicativo já roda no Fabric. Se ainda depende da arquitetura antiga, siga o guia de migração da documentação antes de qualquer outra mudança.
Em seguida, instale o Visual Studio 2026, o SDK do .NET 10 e o Windows App SDK 1.8. Faça o mesmo nas imagens de integração contínua, porque elas costumam ficar para trás.
Depois disso, atualize os pacotes do projeto. Para um projeto novo, o guia oficial de primeiros passos indica a sequência abaixo.
# cria o projeto React Native na versão 0.85
npx --yes @react-native-community/cli@latest init SampleApp --version 0.85.0
cd SampleApp
# adiciona o React Native Windows ao projeto
yarn add react-native-windows@^0.85.0
# gera o código nativo e os projetos do Windows
npx react-native init-windows --overwrite
# compila e executa o app
npx react-native run-windows
Atenção ao init-windows --overwrite, porque ele sobrescreve o metro.config.js. Se o projeto tinha ajustes nesse arquivo, faça backup e reaplique as mudanças depois.
Para projetos existentes, a documentação mantém um guia específico de atualização de versão. Vale também consultar as notas da release no GitHub, que listam cada pull request incluído.
Por fim, teste os fluxos sensíveis às correções desta versão. Campos de texto, listas com rolagem, diálogos e navegação por teclado são os pontos que mais podem mudar de comportamento.
Caso alguma propriedade ou funcionalidade esteja faltando, a equipe pede que o desenvolvedor abra uma issue no repositório. Além disso, a documentação mantém uma página com as lacunas de propriedades já conhecidas, que vale consultar antes de reportar.
React Native Windows ou .NET MAUI
Para quem vive no ecossistema Microsoft, a pergunta aparece com frequência. Afinal, o .NET MAUI também gera aplicativos nativos para Windows, usando WinUI 3 por baixo.
A escolha depende principalmente da bagagem do time. Equipes com forte experiência em React e JavaScript tendem a produzir mais rápido com o React Native Windows, enquanto equipes .NET aproveitam C#, XAML e bibliotecas compartilhadas com o MAUI.
Curiosamente, a própria versão 0.85 aproxima os dois mundos ao exigir o .NET 10 no build. Ainda assim, o código da interface continua em JavaScript ou TypeScript, e não em C#.
Se a dúvida envolve outras opções multiplataforma, o comparativo entre .NET MAUI e Flutter aqui no balta.io ajuda a entender as diferenças de filosofia entre os frameworks.
Conclusão
O React Native Windows 0.85 marca o fim da transição para a nova arquitetura. Com apenas o Fabric, o framework fica mais simples de manter e abre espaço para evoluir em desempenho e paridade de recursos.
Por outro lado, a versão cobra um preço de atualização. Visual Studio 2026, .NET 10 e Windows App SDK 1.8 passam a ser obrigatórios, e aplicativos na arquitetura antiga precisam migrar antes.
Em troca, o desenvolvedor ganha Modal sem barra de título, outline na View, TurboModules antecipados e uma longa lista de correções de toque, texto e acessibilidade. Portanto, para quem já está no Fabric, atualizar o React Native Windows agora é um passo natural.
FAQ
Preciso migrar para o Fabric antes de atualizar para a versão 0.85?
Sim. A versão 0.85 remove a arquitetura legada, então aplicativos que ainda não usam o Fabric precisam migrar antes da atualização.
Quais ferramentas o React Native Windows 0.85 exige?
A versão exige Visual Studio 2026, .NET 10 e Windows App SDK 1.8, na versão 1.8.260508005 do pacote Microsoft.WindowsAppSDK.
Em qual versão do React Native a release se baseia?
O React Native Windows 0.85.0 usa como base o React Native 0.85.3.
Como rodar o Metro em outra porta com o run-windows?
Use a opção --port, por exemplo npx react-native run-windows --port 9000. Sem ela, o comando continua usando a porta 8081.
Onde posso ver os novos componentes funcionando?
Instale o React Native Gallery pela Microsoft Store. O pacote 2.1.10.0 usa o React Native Windows 0.85.0.