Novas APIs e recursos
- Actions: processam automaticamente alterações de dados e atualizações de estado. Gerenciam automaticamente estado de espera, erros, optimistic updates etc.
useActionState: novo hook que simplifica casos de uso comuns de Actions
use API: permite ler promises e contexto durante a renderização
useOptimistic: facilita a implementação de atualizações otimistas de UI durante requisições assíncronas
ref as a prop: permite usar a prop ref diretamente em componentes de função (forwardRef desnecessário)
<Context> as a Provider: permite usar <Context> diretamente no lugar de <Context.Provider>
Gerenciamento de documento e recursos
- suporte a metadados: permite usar tags
<title>, <link> e <meta> diretamente nos componentes
- suporte a folhas de estilo: carregamento de stylesheets e gerenciamento de prioridade dentro dos componentes
- suporte a scripts assíncronos: permite renderizar scripts assíncronos em qualquer ponto da árvore de componentes
- pré-carregamento de recursos: fornece as APIs
prefetchDNS, preconnect, preload e preinit para otimização de desempenho
Melhorias
- suporte a custom elements: adicionado suporte completo a custom elements
- melhorias no tratamento de erros: remoção de erros duplicados e adição de opções de tratamento de erros
- compatibilidade com scripts/extensões de terceiros: melhoria no tratamento de conteúdo de terceiros durante o processo de hydration
- melhorias nos erros de hydration: mensagens de erro mais claras e informações de depuração mais detalhadas
Server Components
- Server Components estabilizados: todos os recursos de Server Components do canal Canary foram incluídos no React 19
- Server Actions: fornece a capacidade de chamar funções do servidor a partir de componentes cliente
Outros
- valor inicial de
useDeferredValue: adicionada uma opção de valor inicial ao useDeferredValue
- função de cleanup de ref: callbacks de ref agora podem retornar uma função de cleanup
- nova Static API: adicionadas as APIs
prerender e prerenderToNodeStream
1 comentários
Nesta versão 19, o funcionamento controverso do
<Suspense>foi redefinido. Até então, quando um componente era colocado em Suspense, o React renderizava até o próximo componente Suspense e só então gerava o fallback; agora, ao colocar um componente em Suspense, ele primeiro gera o fallback e depois renderiza o próximo componente Suspense.Melhorias no Suspense
Em resumo, dá para dizer que o tempo da renderização inicial foi reduzido. Ainda bem que isso foi resolvido.