Skip to main content

Hidden Features | Angular

  • Hidden Features | Angular

ngNonBindable: Exibir Sintaxe do Angular como Texto Simples

Já quis exibir a sintaxe do Angular (como {{ }}) nos seus templates sem que o Angular a interpretasse? Use ngNonBindable!

<div ngNonBindable>
Isto não será avaliado: {{ 1 + 1 }}
</div>

Por que é incrível?

  • Perfeito para documentação ou tutoriais.
  • Impede que o Angular processe vinculações.

ngPlural: Simplifique a Pluralização

A diretiva ngPlural do Angular facilita o tratamento da pluralização nos templates. Chega de cadeias confusas de *ngIf para casos de singular/plural!

<div [ngPlural]="itemCount">
<ng-template ngPluralCase="=1">1 item</ng-template>
<ng-template ngPluralCase="other">{{ itemCount }} itens</ng-template>
</div>

Por que é incrível?

  • Maneira limpa e legível de lidar com pluralização.
  • Suporta múltiplos idiomas e regras de pluralização.

ngProjectAs: Projeção Avançada de Conteúdo

O ngProjectAs permite projetar conteúdo em slots específicos de ng-content, mesmo que o seletor não corresponda. Ideal para cenários complexos de projeção de componentes.

<ng-content select="[header]"></ng-content>
<ng-content select="[body]"></ng-content>

<app-card>
<div ngProjectAs="[header]">Este é o cabeçalho</div>
<div ngProjectAs="[body]">Este é o corpo</div>
</app-card>

Por que é incrível?

  • Dá controle detalhado sobre a projeção de conteúdo.
  • Torna seus componentes mais flexíveis.

ngComponentOutlet: Carregamento Dinâmico de Componentes

O ngComponentOutlet permite carregar componentes dinamicamente em tempo de execução. Isso é perfeito para criar interfaces altamente dinâmicas onde os componentes não são conhecidos em tempo de compilação.

<ng-container *ngComponentOutlet="dynamicComponent"></ng-container>

Por que é incrível?

  • Habilita a renderização dinâmica de componentes.
  • Ótimo para arquiteturas baseadas em plugins.

ngSkipHydration: Otimize o Desempenho do SSR

O ngSkipHydration permite ignorar a hidratação de componentes específicos durante a renderização do lado do servidor (SSR), melhorando o desempenho e evitando problemas de hidratação.

<app-my-component ngSkipHydration></app-my-component>

Por que é incrível?

  • Melhora o desempenho do SSR.
  • Previne incompatibilidades na hidratação.

ngDevMode: Depuração Apenas no Desenvolvimento

O ngDevMode é um sinalizador global que ativa verificações e avisos específicos do modo de desenvolvimento. Você pode usá-lo para adicionar lógica de depuração que só é executada no ambiente de desenvolvimento.

if (ngDevMode) {
console.log('Depurando no modo de desenvolvimento');
}

Por que é incrível?

  • Mantém o código de depuração fora das versões de produção.
  • Simplifica os fluxos de trabalho de desenvolvimento.

ng update --migrate-only: Teste Migrações com Segurança

O comando ng update --migrate-only permite executar scripts de migração sem atualizar as versões dos pacotes. Ideal para testar migrações ou aplicá-las de forma incremental.

ng update @angular/core --migrate-only --from=13.0.0 --to=14.0.0

Por que é incrível?

  • Teste migrações com segurança antes de aplicá-las.
  • Permite aplicar migrações gradualmente.

ng build --stats-json: Analise o Tamanho do Bundle

O ng build --stats-json gera um arquivo stats.json que pode ser usado para analisar o tamanho dos bundles do seu aplicativo. Isso ajuda a identificar dependências grandes e otimizar o desempenho.

ng build --stats-json

Por que é incrível?

  • Ajuda a otimizar o desempenho do aplicativo.
  • Identifica dependências grandes.

ng generate library: Crie Bibliotecas Reutilizáveis

O comando ng generate library permite criar bibliotecas reutilizáveis dentro do seu workspace. Isso é perfeito para compartilhar componentes, serviços ou utilitários entre vários projetos.

ng generate library my-lib

Por que é incrível?

  • Promove a reutilização de código entre projetos.
  • Simplifica manutenção e atualizações.
  • Excelente para configurações monorrepo.

ng deploy: Implantação com um Clique

O ng deploy automatiza o processo de implantação para vários provedores de hospedagem, como Firebase, GitHub Pages e outros. Ele simplifica significativamente os fluxos de trabalho de implantação.

ng deploy --base-href=/my-app/

Por que é incrível?

  • Economiza tempo ao automatizar a implantação.
  • Suporta vários provedores de hospedagem.
  • Garante configurações de implantação consistentes.