Ciclo de Vida del Componente OWL

Ciclo de Vida del componente explicado paso a paso con sus hooks asociados

Ciclo de vida completo



 

setup

Hook: none

Descripción: Inicializa el componente configurando el estado y las propiedades. Este método se llama una vez, antes de que se realice cualquier renderizado o actualización. En setup, puedes definir el estado inicial, vincular datos reactivos, o preparar cualquier lógica que necesite estar lista antes de que el componente comience a interactuar con el usuario.
import { Component, useState } from '@odoo/owl';

class MyComponent extends Component {
    setup() {
        this.state = useState({ count: 0 });
    }
}

willStart

Hook: onWillStart

Descripción: Se utiliza para realizar tareas asíncronas antes del primer renderizado. Es ideal para inicializar datos que se necesitan para el primer renderizado del componente.

import { Component, onWillStart } from '@odoo/owl';

class MyComponent extends Component {
  setup() {
    onWillStart(async () => {
      this.data = await fetchData();
    });
  }
}

willRender

Hook: onWillRender

Descripción: Se llama justo antes de que el componente sea renderizado. Puedes utilizar este método para preparar cualquier dato o lógica que debe estar lista justo antes de que el componente se dibuje.

import { Component, onWillRender } from '@odoo/owl';

class MyComponent extends Component {
  setup() {
    onWillRender(() => {
      console.log("Component will render");
    });
  }
}

rendered

Hook: onRendered

Descripción: Se invoca justo después de que el componente ha sido renderizado. Puedes utilizar este método para realizar tareas que dependen de la existencia del DOM del componente, como la inicialización de librerías que interactúan con el DOM.

import { Component, onRendered } from '@odoo/owl';

class MyComponent extends Component {
  setup() {
    onRendered(() => {
        console.log("Component has been rendered");
    });
  }
}

mounted

Hook: onMounted

Descripción: Se llama después de que el componente ha sido renderizado y agregado al DOM. Es útil para realizar manipulaciones del DOM o inicializar integraciones que requieran que el componente esté completamente en el DOM.

import { Component, onMounted } from '@odoo/owl';

class MyComponent extends Component {
  setup() {
    onMounted(() => {
      this.el.querySelector('button').addEventListener('click', this.increment.bind(this));
    });
  }
}

willUpdateProps

Hook: onWillUpdateProps

Descripción: Se invoca antes de que se actualicen las propiedades del componente. Aquí puedes implementar lógica que reaccione a cambios en las propiedades antes de que el componente se vuelva a renderizar.

import { Component, onWillUpdateProps } from '@odoo/owl';

class MyComponent extends Component {
  setup() {
    onWillUpdateProps(nextProps => {
      return this.loadData({id: nextProps.id });
    });
  }
}

willPatch

Hook: onWillPatch

Descripción: Se llama justo antes de que el DOM sea parcheado con los nuevos datos. Puedes usar este método para preparar cualquier cambio en el DOM que necesite ser manejado justo antes de que OWL aplique las diferencias al DOM.

import { Component, onWillPatch } from '@odoo/owl';

class MyComponent extends Component {
  setup() {
    onWillPatch(() => {
      this.scrollState = this.getScrollSTate();
    });
  }
}

patched

Hook: onPatched

Descripción: Se invoca justo después de que el DOM ha sido parcheado. Es útil para realizar ajustes finales o reacciones a la actualización del DOM.

import { Component, onPatched } from '@odoo/owl';

class MyComponent extends Component {
  setup() {
    onPatched(() => {
      this.scrollState = this.getScrollState();
    });
  }
}

willUnmount

Hook: onWillUnmount

Descripción: Se utiliza justo antes de que el componente sea eliminado del DOM. Es ideal para limpiar recursos o escuchadores de eventos que fueron configurados durante el ciclo de vida del componente.

import { Component, onWillUnmount } from '@odoo/owl';

class MyComponent extends Component {
  setup() {
    onWillUnmount(() => {
        this.el.querySelector('button').removeEventListener('click', this.increment.bind(this));
    });
  }
}

willDestroy

Hook: onWillDestroy

Descripción: Se llama justo antes de que el componente sea destruido. Aquí puedes limpiar cualquier recurso que el componente haya creado o administrado, como conexiones a bases de datos, suscripciones, etc.

import { Component, onWillDestroy } from '@odoo/owl';

class MyComponent extends Component {
   setup() {
    onWillDestroy(() => {
      console.log("Component will be destroyed");
    });
  }
}

error

Hook: onError

Descripción: Maneja errores que se producen durante el ciclo de vida del componente. Puedes usar este método para capturar y manejar errores de manera global en el componente.

import { Component, onError } from '@odoo/owl';

class MyComponent extends owl.Component {
  onError(() => {
    console.error("An error occurred:", error);
  });
}
Iniciar sesión para dejar un comentario