Front End

5 jun, 2019

Angular 8 — Atualização e Recursos

Publicidade

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.


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:

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

 

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

Agora ficou assim:

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

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:

@ViewChild('foo') foo: ElementRef;

Depois:

@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