Watchers en Composition API de Vue.js: Sintaxis y Uso Práctico

Clase 15 de 23Curso de Vue.js: Componentes y Composition API

Resumen

¿Cómo funcionan los Watchers en el Composition API?

Los "watchers" en Vue.js son un aspecto esencial para gestionar cambios en las aplicaciones, permitiéndote escuchar los cambios en un estado reactivo y reaccionar ante ellos. Con el Composition API, el uso de watchers adopta un enfoque diferente al que podrías estar acostumbrado con el Options API. Ahora, veremos cómo implementarlos y aprovechar al máximo sus capacidades en el entorno del Composition API.

¿Qué son los watchers y cómo se implementan?

Los watchers son funciones observadoras que se activan cuando cambia una variable reactiva, dándote acceso al valor antiguo y al nuevo para ejecutar acciones en consecuencia. Se asemejan a las propiedades computadas, pero en lugar de calcular valores, monitorean los cambios.

Para implementar un watcher en el Composition API, se sigue el siguiente procedimiento:

  1. Importar la función watch: Asegúrate de importar watch de Vue, ya que será necesaria para definir los listeners.

    import { watch } from 'vue';
    
  2. Usar la función setup: Dentro de setup, defines tus datos reactivos y posteriormente los observers.

    setup() {
      const counter = ref(0);
      const object = reactive({ counter: 0 });
      
      // Ejemplo de uso con reactive
      watch(
        () => object.counter,
        (newValue, oldValue) => {
          console.log('Nuevo valor:', newValue, 'Valor anterior:', oldValue);
        }
      );
    }
    
  3. Definir los parámetros del watcher:

    • Primer parámetro: El valor a observar, en este caso usando una función que accede a la propiedad reactiva.
    • Segundo parámetro: La función de callback que se ejecuta con cada cambio, recibiendo el nuevo y antiguo valor.

¿Cómo se diferencia el uso entre ref y reactive?

La diferencia principal al usar ref y reactive en el contexto de watchers radica en cómo accedemos a los valores.

  • Con ref: Debes acceder al valor encapsulado usando .value.

    const counter = ref(0);
    watch(
      () => counter.value,
      (newVal, oldVal) => {
        // Manejo de cambios
      }
    );
    
  • Con reactive: Accedes al valor directamente porque reactive retorna una referencia al objeto original en forma de proxy.

    const object = reactive({ counter: 0 });
    watch(
      () => object.counter,
      (newVal, oldVal) => {
        // Manejo de cambios
      }
    );
    

¿Qué debes tener en cuenta al usar watchers con el Composition API?

Implementar watchers con el Composition API difiere ligeramente a como se haría en el Options API. Aquí destaca:

  • La programación funcional: Utilizar watch en el Composition API implica una sintaxis funcional que genera una mejor gestión de la reactividad, accediendo a los valores de manera adecuada.

  • Flexibilidad del callback: Dentro de la función callback, puedes integrar cualquier lógica en JavaScript vanilla o características específicas de Vue.js, logrando así un espectro completo de reacciones en tiempo real.

  • Ventajas de la sintaxis moderna: La sintaxis basada en funciones permite mayor claridad y separación lógica dentro del componente, siendo más escalable en aplicaciones grandes.

El Composition API y su manejo de watchers te brinda un enfoque más sistemático y flexible para escuchar cambios y actuar sobre ellos en tu aplicación Vue.js. Continúa experimentando y profundizando en estas herramientas para mejorar tus habilidades en el desarrollo moderno de interfaces.