Novidades do Angular 13

João Henrique de Oliveira Júnior
TOTVS Developers
Published in
4 min readNov 11, 2021
Photo by Markus Winkler on Unsplash

Olá caros Padawans! A rotina não tem me permitido escrever muito, mas ainda estou vivo, firme e forte (: Vamos falar do Angular e suas novidades?

Tópicos das novidades

  • Melhorias no motor de visualização
  • Alterações feitas no formato do pacote APF
  • Melhorias na API interna do Angular
  • Adeus ao IE11
  • Possibilidade de habilitar cache de compilação persistente
  • Suporte a versões mais atuais de bibliotecas importantes
  • Melhorias nos testes unitários
  • Melhorias de acessibilidade
  • Melhorias para fontes embutidas
  • Diversas contribuições da comunidade

Resumo mais detalhado das novidades

Melhorias no motor de visualização — Na versão 12 do Angular foram realizadas algumas alterações importantes, a principal delas foi a respeito do pipeline de renderização e compilação, agora padrão do Angular, o Ivy. Você pode ler mais a respeito dessas atualizações na postagem oficial do Angular 12 aqui no Medium.

Resumidamente, o Ivy permite muitas melhorias de desempenho para nossas aplicações feitas em Angular. Por exemplo, o View Engine não estará mais disponível na versão 13 do Angular. Isso reduz por exemplo a necessidade de dependência do compilador ngcc, reduzindo consequentemente o tempo de compilação, pois alguns metadados e arquivos de resumo não serão mais necessários.

Alterações feitas no formato do pacote APF — Já que a View Engine não faz mais parte da versão, alguns metadados da View Engine também saíram da APF (Angular package format). Foram realizadas modernizações com ES2020 e foi removido a exigência de usar o ngcc. Assim quem desenvolve bibliotecas receberá de brinde um pacote melhor e mais rápido de ser executado. Agora também há suporte ao Node Package Exports.

Melhorias na API interna do Angular — Também graças ao Ivy (viu como é importante?) a criação de componentes dinâmicos ficou bem mais enxuta. A necessidade de usar o ComponentFactoryResolver foi removida. O resultado é que antes um código que era assim:

@Directive({ … })
export class MyDirective {
constructor(private viewContainerRef: ViewContainerRef,
private componentFactoryResolver:
ComponentFactoryResolver) {}
createMyComponent() {
const componentFactory = this.componentFactoryResolver.
resolveComponentFactory(MyComponent);

this.viewContainerRef.createComponent(componentFactory);
}
}

Passa a ser dessa forma:

@Directive({ … })export class MyDirective {
constructor(private viewContainerRef: ViewContainerRef) {}
createMyComponent() {
this.viewContainerRef.createComponent(MyComponent);
}
}

Bem melhor não é?

Adeus ao IE11

É isso mesmo, possibilidade de modernização, usar APIs nativas mais eficientes, variáveis do CSS, e um monte de polyfills desnecessárias removidas. Só alegria aqui.

Possibilidade de habilitar cache de compilação persistente — Para habilitar esse recurso no seu Angular CLI, você precisa apenas adicionar isso no seu arquivo angular.json:

"cli": {
"cache": {
"enabled": true,
"path": ".cache",
"environment": "all"
}
}

De acordo com a postagem oficial do Angular a respeito das novidades do Angular 13, isso pode melhorar em até 68% a velocidade de compilação. Incrível não?

Suporte a versões mais atuais de bibliotecas importantes — Agora o padrão é usar o RxJS 7.4. Se você criar um projeto do zero essa versão será já a utilizada. Caso você esteja dando um upgrade em sua aplicação já existente, precisará fazer isso manualmente.

O TypeScript 4.4 ganhou suporte definitivamente.

Melhorias nos testes unitários — Para reduzir o gasto de memória dentre outros probleminhas, o DOM agora será limpo a cada ciclo de teste. Você pode habilitar isso por exemplo dessa forma:

beforeEach(() => {
TestBed.resetTestEnvironment();
TestBed.initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting(), {
teardown: { destroyAfterEach: true }
}
);
});

Mas você também pode inserir a opção “teardown: { destroyAfterEach: true }” diretamente no “configuringTestingModule” também.

Melhorias de acessibilidade — Se você utiliza Angular Material, vai gostar de saber que a equipe do Angular trabalhou muito na melhoria de vários componentes para você! Você pode ver exemplos no artigo oficial do Angular 13.

Melhorias para fontes embutidas — Agora há, suporte para o inlining Google Fontes. Também foi expandido o suporte para o Adobe Fonts. Usar inlining fonts pode ajudar no desempenho do seu projeto também.

A comunidade também trabalhou muito, trazendo algumas melhorias como habilitar e desabilitar validadores dinamicamente e restaurar o histórico depois de cancelar uma navegação. Você poderá verificar isso também no artigo oficial do Angular 13 e na documentação oficial do Angular.

Conclusão

Agora você tem uma versão novinha para começar a experimentar ai no seu projeto! O Angular vem crescendo muito em desempenho.

Procurei trazer um resumo rápido e em bom português para que você fique inteirado do assunto, mas nada substitui uma leitura adequada das documentações oficiais.

Referência

--

--

João Henrique de Oliveira Júnior
TOTVS Developers

Analista de sistemas na TOTVS. Bacharel e técnico em sistemas de informação. Ama a Deus, sua família, música e animais.