Publicado em

- 4 minutos de leitura

Angular 19: Conheça as novidades!

img of Angular 19: Conheça as novidades!

Este artigo é baseado no Blog Post oficial do Angular

O Angular 19 chegou trazendo uma série de recursos que prometem transformar a experiência de desenvolvimento e entrega de aplicações web.

Entre as principais novidades estão o Incremental Hydration, que otimiza o desempenho de aplicações SSR, o modo de renderização por rota e a evolução do sistema de reatividade com signals e novas APIs estabilizadas.

Além disso, melhorias na experiência de desenvolvimento, como suporte a Hot Module Replacement (HMR) para templates e estilos, reforçam o compromisso do framework com produtividade e inovação.

Quer saber como essas atualizações podem impactar seu próximo projeto? Continue lendo para explorar os detalhes mais recentes e aproveite ao máximo as novidades dessa nova versão do Angular!

Incremental Hydration em prévia para desenvolvedores

O Incremental Hydration permite que trechos do template sejam marcados utilizando a sintaxe familiar @defer, instruindo o Angular a carregar e hidratar essas partes de forma lazy, com base em gatilhos específicos.

Demonstração de Incremental Hydration

Incremental Hydration demonstration

Em uma demonstração de uma página e-commerce renderizada no servidor, inicialmente todo o conteúdo está cinza, indicando que a aplicação foi renderizada, mas nenhum script associado à interface foi carregado. À medida que o usuário interage com elementos como a navegação lateral ou itens na página, o Angular hidrata essas seções, mudando o estilo visual.

Essa funcionalidade, ilustrada na demonstração, utiliza três efeitos visuais para destacar o progresso:

  • Cinza: Componentes que ainda não foram carregados ou hidratados.
  • Pulsações: Indicam que o Angular está baixando um componente da rede.
  • Borda roxa: Mostra que o componente foi baixado e hidratado com sucesso.

A funcionalidade já pode ser testada em aplicações que utilizam server-side rendering (SSR) e hidratação completa. Basta adicionar ao bootstrap do cliente:

   import { provideClientHydration, withIncrementalHydration } from '@angular/platform-browser'

// ...
provideClientHydration(withIncrementalHydration())

No template, é possível aplicar o Incremental Hydration em partes específicas, como:

   @defer (hydrate on viewport) {
<shopping-cart />
}

Mais detalhes estão disponíveis na documentação oficial.


Event Replay habilitado por padrão

Um problema comum em aplicações SSR é o intervalo entre um evento do usuário e o carregamento do código responsável por processá-lo. O Event Replay captura eventos durante o carregamento inicial e os reexecuta quando o código está disponível, garantindo uma experiência contínua.

A partir do Angular 19, o Event Replay é habilitado por padrão para novos projetos que utilizam SSR. Para ativá-lo manualmente, configure o provedor de hidratação no bootstrap:

   bootstrapApplication(App, {
	providers: [provideClientHydration(withEventReplay())]
})

Modo de renderização por rota

Agora é possível configurar como cada rota será renderizada, seja no servidor, no cliente ou pré-renderizada. Um exemplo de configuração:

   export const serverRouteConfig: ServerRoute[] = [
	{ path: '/login', mode: RenderMode.Server },
	{ path: '/dashboard', mode: RenderMode.Client },
	{ path: '/**', mode: RenderMode.Prerender }
]

Além disso, para rotas com parâmetros, é possível pré-renderizá-las com base em lógica personalizada utilizando o método getPrerenderPaths.


Imagem com o texto: Curso testes automatizado com Angular e um Robo azul com uma logo do Angular atrás. Logo abaixo existe um botão com o texto 'Eu quero!'

SSR com Angular sem Zone.js

O Angular 19 continua a evolução da versão experimental sem dependência de zone.js. Isso é feito por meio de novas primitivas que lidam com eventos pendentes e navegações no HttpClient e no Router. É possível experimentar o suporte zoneless removendo zone.js dos polyfills e configurando o bootstrap:

   bootstrapApplication(App, {
	providers: [provideExperimentalZonelessChangeDetection()]
})

Melhoria na experiência de desenvolvimento

Hot Module Replacement (HMR)

O Angular agora suporta Hot Module Replacement para estilos por padrão e oferece suporte experimental para templates. Alterações em estilos ou templates são aplicadas sem recarregar a página, mantendo o estado da aplicação.

Para habilitar o HMR de templates, utilize:

   NG_HMR_TEMPLATES=1 ng serve

Reactividade: novos recursos e APIs estáveis

O Angular 19 traz novidades na evolução do sistema de reatividade:

  • Inputs, Outputs e Queries estabilizados: Agora, esses recursos estão disponíveis para uso em produção. Migrations automáticas podem ser realizadas com:

       ng generate @angular/core:signals
  • Linked Signals: Introduz um signal mutável que acompanha um estado de nível superior. Por exemplo:

       const options = signal(['apple', 'banana'])
    const choice = linkedSignal(() => options()[0])
  • Resource API: Para operações assíncronas, a API experimental resource integra-se ao sistema de signals:

       user = resource({
    	request: userId,
    	loader: async ({ request: id }) => await userService.getUser(id)
    })

Outras melhorias

  • Standalone como padrão: Componentes standalone agora são configurados como padrão.

  • Testes unitários: Suporte experimental para o builder esbuild no Karma, preparando o terreno para substituir esse runner em 2025.

  • CSP baseado em hash: Implementação experimental para políticas de segurança de conteúdo baseadas em hash, protegendo contra scripts maliciosos.

  • Variáveis locais em templates: Agora estáveis, permitem declarações como:

       @let greeting = 'Olá ' + name.value;

Explore o Futuro com o Angular 19

A versão 19 do Angular traz avanços significativos para o desenvolvimento web. Com novidades como Incremental Hydration, renderização por rota e melhorias em reatividade com signals, esta atualização oferece mais eficiência e flexibilidade.

Aproveite as novas ferramentas, otimize seus projetos e contribua para moldar o futuro do framework. O Angular 19 está pronto para elevar o nível das suas aplicações. 🚀

Sobre o autor

Author's photo
Henrique Custódia Arquiteto Frontend, entusiasta Angular, cat lover, criador de conteúdo e fundador da Code Dimension!

Assine nossa Newsletter e receba os últimos posts e novidades da Code Dimension!