Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

248
Views
Angular 2: evento ChangeDetection y mousemove

Tengo un Componente Angular 2 con muchos hijos. Debido a problemas de rendimiento, quería verificar con qué frecuencia ChangeDetection verifica mis componentes secundarios. Así que registré la devolución de ngAfterViewChecked de uno de mis componentes secundarios.

Me di cuenta de que mi componente principal tiene una devolución de mousemove() y, por lo tanto, se llama a ngAfterViewChecked de mis hijos cada vez que muevo el mouse sobre el elemento principal. Pero no estoy actualizando ninguna variable de componente en mi mousemove() -callback. ¿Por qué se ejecuta ChangeDetection para los niños y cómo puedo detener esto?

Espero que entiendas el problema (si no, por favor comenta, así puedo aclarar las cosas).

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

El peeskillet del sitio proporcionado muestra cómo excluir eventlistener de ChangeDetection:

 import { Component, NgZone } from '@angular/core'; @Component(...) export class AppComponent { ... element: HTMLElement; constructor(private zone: NgZone) {} mouseDown(event) { ... this.element = event.target; this.zone.runOutsideAngular(() => { window.document.addEventListener('mousemove', this.mouseMove.bind(this)); }); } mouseMove(event) { event.preventDefault(); this.element.setAttribute('x', event.clientX + this.clientX + 'px'); this.element.setAttribute('y', event.clientX + this.clientY + 'px'); } }

Para más información realmente puedo recomendar este artículo . ¡Grandes THX a peeskillet!

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!