Dev (Back & Front)ARTIGO

Angular 8 — Atualização e Recursos

Foi lançado no dia 28 de maio a versão estável 8 do Angular. Neste artigo eu comento sobre as principais novidades e os passos para atualização.

Angular 8 — Atualização e Recursos
Imagem: Kheronn Machado

Foi lançado no dia 28 de maio a versão estável 8 do Angular.

Neste artigo eu comento sobre as principais novidades e os passos para atualização.

Atualização

Para atualizar sua aplicação você deve informar no terminal o comando.


javascript
ng update @angular/cli @angular/core

Novos Recursos

Differential Loading by Default

Entre as principais novidades está o carregamento diferencial por padrão (Differential Loading by Default).

De acordo com a página https://web.dev/codelab-serve-modern-code, esse recurso é um processo em que o navegador escolhe entre JavaScript moderno ou legado com base em seus próprios recursos, tiramos vantagem disso por padrão, executando uma compilação moderna (es2015) e uma compilação herdada (es5) de seu aplicativo.

Ao utilizar o comando ng update o próprio CLI se encarrega de atualizar o tsconfig. Isso na prática pode gerar uma economia superior a 40kB do tamanho inicial do pacote para os navegadores modernos.

Fonte: https://blog.angular.io/version-8-of-angular-smaller-bundles-cli-apis-and-alignment-with-the-ecosystem-af0261112a27

Para saber mais, acesse a documentação em https://v8.angular.io/guide/deployment#differential-loading

Configurações de Rotas

O uso de Lazy Loading é uma prática altamente recomendada.

Para realizar a configuração escrevíamos da seguinte maneira:

javascript
{path: ‘/painel, loadChildren:‘./painel/painel.module#PainelModule’}

 

Com a versão 8, temos as importações dinâmicas,

Agora ficou assim:

javascript
path: `/painel`, loadChildren: () => import(`./painel/painel.module`).then(m => m.PainelModule)}

 

Outra vantagem dessa forma está no suporte de editores (VSCodeWebStorm) em validar os imports para o programador.

Da mesma forma, o legal de utilizar o ng update é atualização das rotas seguindo esse formato novo.

CLI Builders

O uso de novas APIS permitem uma automação maior de processos de construção e implantação, como exemplo podemos utilizar a versão mais recente do Angular Fire, fazendo com que a criação e implantação do Firebase fique muito fácil

javascript
ng add @angular/fire
ng run minha-aplicacao:deploy
Uma vez instalada com ng add, o comando realiza a construção e implantação no Firebase.

ViewChild e ContentChild

Agora devemos especificar a explicitamente a estratégia de resolução para as consultas utilizando o atributo static.

Antes:

javascript
@ViewChild('foo') foo: ElementRef;

Depois:

javascript
@ViewChild('foo', {static: true}) foo: ElementRef;

BREAKING CHANGES

O destaque para as mudanças que podem quebrar seu código é sem dúvida a remoção definitiva do pacote @angular/http.

Depreciada desde a versão 4 do framework, para requisições HTTP o correto é utilizar o pacote @angular/common/http .

Caso tenha alguma aplicação que ainda utilize esse pacote, você deve atualizar sua aplicação realizando os seguintes passos:

  • Alterar HttpModule para HttpClientModule (do pacote @angular/common/http) em cada módulo;
  • Trocar o Http no service para HttpClient no service.
  • Remover todas ocorrências de chamadas map(res => res.json()).

Conclusão

Finalmente, recomendo acessar o site update.angular.io para consultar informações detalhadas sobre a atualização com base na complexidade da sua aplicação, uso de outras dependências e o gerenciador de pacotes.

Atualizei alguns projetos e foi bem tranquilo!!!

Até +

Links Consultados

Version 8 of Angular — Smaller bundles, CLI APIs, and alignment with the ecosystem
The 8.0.0 release of Angular is here! This is a major release spanning the entire platform, including the core…blog.angular.io
Angular
Angular is a platform for building mobile and desktop web applications. Join the community of millions of developers…angular.io
Angular Update Guide
An update guide for moving between versions of Angular. Learn about all of the changes and the steps you can take to…update.angular.io

Mestre em Informática pela Universidade Federal do Paraná. Atuo como professor e assessor pedagógico em Tecnologias Educacionais na rede Estadual de Educação do Paraná, NRE de Wenceslau Braz. Interesse em tecnologias que contribuam para aprendizagem significativa.

Ver perfil