NgZone
-
NgZone
-
Bom uso
- Isso é útil quando você precisa executar uma tarefa que pode ser demorada ou que pode causar bloqueios na thread principal da aplicação.
-
O Angular aproveita o ZoneJS para descobrir quando uma tarefa assíncrona é concluída e, como resultado, um ciclo de detecção de alteração deve ser acionado
-
Zona do angular- Em resumo, a zona do Angular é um mecanismo interno do framework que é usada para detectar e gerenciar as mudanças de estado na aplicação, bem como para rastrear e gerenciar exceções. Ela é essencial para garantir que o ciclo de detecção de mudanças do Angular seja executado corretamente e para manter a consistência entre o estado interno da aplicação e a interface do usuário.
-
Como barrar eventos de serem escutados pelo ngZone
-
Criar um arquivo chamado
zone-flags.ts- dentro do arquivo adicione
window__zone_symbol__UNPATCHED_EVENTS=[’scroll’]
- dentro do arquivo adicione
-
Depois importe esse arquivo dentro do
polyfills.ts -
Ou podemos adicionar manualmente dessa forma
export class TestComponent {
constructor(private zone: NgZone) {}
ngOnInit() {
this.zone.runOutsideAngular(() => {
// don't forget to unsubscribe
fromEvent(window, 'scroll').subscribe(...);
});
}
- Para usar o NgZone, basta injetá-lo em um componente ou serviço e, em seguida, usar o método **
run()**para executar a tarefa assíncrona dentro da zona do Angular. Isso garante que o Angular esteja ciente da tarefa assíncrona e que o ciclo de detecção de mudanças seja executado corretamente após a conclusão da tarefa. - Além disso, o NgZone também fornece um método
runOutsideAngular(), que permite executar tarefas fora da zona do Angular, se necessário. Isso pode ser útil para tarefas que não afetam diretamente o estado da aplicação ou a interface do usuário, reduzindo a sobrecarga do ciclo de detecção de mudanças do Angular.