Como melhorar o desempenho do Angular
Angular é um framework front-end popular para a construção de aplicações web. No entanto, à medida que seu aplicativo cresce em tamanho e complexidade, você pode notar uma diminuição no desempenho. Neste artigo, discutiremos algumas das melhores práticas para melhorar o desempenho do seu aplicativo Angular.
Use a estratégia de detecção de alterações OnPush
Angular usa a detecção de alterações para determinar quando atualizar a exibição. A estratégia de detecção de alteração padrão verifica alterações em todos os componentes sempre que ocorre um evento. Isso pode ser um processo demorado, especialmente para grandes aplicações.
Para melhorar o desempenho, você pode usar a estratégia de detecção de alterações OnPush. A estratégia “OnPush” acionará a detecção de alterações apenas se a referência a uma propriedade de entrada for alterada, não se as próprias propriedades do objeto forem alteradas. Isso significa que se você alterar um objeto que é passado como uma propriedade de entrada, a detecção de alterações não será acionada, mas se você atribuir um novo objeto à propriedade de entrada, a detecção de alterações será acionada.
Esse comportamento é diferente da estratégia de detecção de alteração padrão, que aciona a detecção de alteração em todas as alterações de propriedade de entrada, independentemente de a referência à propriedade de entrada ter sido alterada ou não.
Para usar a estratégia de detecção de alteração OnPush, adicione o seguinte código ao seu componente:
@Component({
changeDetection: ChangeDetectionStrategy.OnPush
})
O carregamento lento é uma técnica que permite carregar apenas os componentes e módulos necessários sob demanda. Isso pode reduzir o tempo de carregamento inicial de seu aplicativo e melhorar seu desempenho.
Para usar o carregamento lento, você pode dividir seu aplicativo em módulos de recursos e carregá-los somente quando forem necessários. Por exemplo, se seu aplicativo tiver uma página de perfil de usuário, você poderá criar um módulo separado para ele e carregá-lo somente quando o usuário navegar para essa página.
Otimize a inicialização do componente
A inicialização do componente pode ser um processo demorado, especialmente se você tiver um grande número de dependências ou se executar cálculos desnecessários durante a inicialização.
Para otimizar a inicialização do componente, você pode minimizar o número de dependências e evitar cálculos desnecessários durante a inicialização. Você também pode usar o carregamento lento para carregar dependências somente quando elas forem necessárias.
Use trackBy em ngFor
Se você estiver usando ngFor para percorrer uma lista de itens, use trackBy para ajudar o Angular a rastrear quais itens foram adicionados, removidos ou modificados. Isso pode melhorar o desempenho de seu aplicativo reduzindo o número de manipulações de DOM.
Para usar trackBy, adicione o seguinte código ao seu componente:
<ng-container *ngFor="let item of items; trackBy: trackByFn">
{{ item }}
</ng-container>
...
trackByFn(index, item) {
return item.id;
}
Use tubos puros
Pipes são usados para transformar dados em Angular. Por padrão, os pipes são puros, mas você pode ter pipes impuros, o que significa que eles são chamados toda vez que há uma alteração nos dados. Isso pode ser um problema de desempenho se o canal não precisar ser recalculado com frequência.
Para melhorar o desempenho, você pode tornar seu cachimbo puro. Um tubo puro é otimizado para recalcular somente quando o valor de entrada muda. Para tornar seu pipe puro, adicione o seguinte código ao seu pipe:
@Pipe({
name: 'myPipe',
pure: true
})
Seguindo essas melhores práticas, você pode melhorar significativamente o desempenho de seu aplicativo Angular e oferecer uma melhor experiência de usuário para seus usuários.
Leia também:https://zmushegh./why-use-pipe-instead-of-function-in-angular-507cf972bfb0
Atenciosamente,
Mushegh Zakaryan





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)