tengo un componente web simple ejecutándose en mi página. Al hacer clic en un botón, simplemente elimino el elemento esperando que el elemento y la clase detrás de él se eliminen. Pero en realidad sigue ejecutándose, por ejemplo, los detectores de eventos siguen ejecutándose incluso después de eliminarlo del DOM.
Así es como lo agrego al DOM y lo hago cargar:
import { LightningElement, createElement } from 'lwc'; import App from 'my/app'; export default class App extends LightningElement { ... const appinner = createElement('my-app', { is: App }); document.body.appendChild(app); ... }Entonces simplemente lo elimino con esto:
const app = document.querySelector('my-app'); app.remove(); // or app.parentNode.removeChild(app);Todo en mi clase "Aplicación" todavía se está ejecutando incluso cuando se ha ido. ¿Cómo puedo realmente hacer que se descargue (o deconstruya) o incluso mate para que no siga funcionando la lógica?
Actualización : se me pasó mencionar que estoy usando la biblioteca LWC de lwc.dev. Y la forma correcta de inyectar un elemento se describe aquí: Enlace
Actualización 2 : se agregó más código para mostrar cómo se hace realmente usando la biblioteca LWC.dev