Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

250
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda