La API de composició és una de les característiques més destacades introduïdes en Vue 3. Aquesta API proporciona una manera més flexible i escalable de gestionar la lògica de components, especialment en aplicacions grans i complexes. En aquest mòdul, explorarem els conceptes clau de la API de composició, veurem exemples pràctics i realitzarem exercicis per consolidar els coneixements.

Continguts

  1. Introducció a la API de composició
  2. Setup Function
  3. Refs i Reactive
  4. Computed i Watch
  5. Mètodes de cicle de vida
  6. Composables
  7. Exercicis pràctics

  1. Introducció a la API de composició

La API de composició permet organitzar la lògica del component en funcions reutilitzables. Això facilita la separació de preocupacions i la reutilització de codi.

Avantatges de la API de composició:

  • Reutilització de codi: Permet crear funcions reutilitzables que encapsulen la lògica del component.
  • Millor organització: Facilita la separació de la lògica en funcions més petites i manejables.
  • Tipat: Millor suport per a TypeScript.

  1. Setup Function

La setup function és el punt d'entrada de la API de composició. Es crida abans que el component sigui creat i és on es defineixen les variables reactives, mètodes i altres elements.

<script setup>
import { ref } from 'vue';

const count = ref(0);

function increment() {
  count.value++;
}
</script>

<template>
  <div>
    <p>{{ count }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

Explicació:

  • ref crea una referència reactiva.
  • count.value accedeix al valor de la referència.
  • La funció increment incrementa el valor de count.

  1. Refs i Reactive

Refs

Les refs són objectes reactius que contenen un valor únic.

import { ref } from 'vue';

const count = ref(0);
console.log(count.value); // 0
count.value++;
console.log(count.value); // 1

Reactive

reactive crea un objecte reactiu que pot contenir múltiples propietats.

import { reactive } from 'vue';

const state = reactive({
  count: 0,
  message: 'Hello'
});

console.log(state.count); // 0
state.count++;
console.log(state.count); // 1

  1. Computed i Watch

Computed

Les propietats computades són valors derivats que es recalculen automàticament quan les seves dependències canvien.

import { ref, computed } from 'vue';

const count = ref(0);
const doubleCount = computed(() => count.value * 2);

console.log(doubleCount.value); // 0
count.value++;
console.log(doubleCount.value); // 2

Watch

Els observadors (watch) permeten reaccionar a canvis en valors reactius.

import { ref, watch } from 'vue';

const count = ref(0);

watch(count, (newValue, oldValue) => {
  console.log(`Count changed from ${oldValue} to ${newValue}`);
});

count.value++; // Count changed from 0 to 1

  1. Mètodes de cicle de vida

Els mètodes de cicle de vida es poden utilitzar dins de la setup function.

import { onMounted, onUnmounted } from 'vue';

onMounted(() => {
  console.log('Component mounted');
});

onUnmounted(() => {
  console.log('Component unmounted');
});

  1. Composables

Els composables són funcions que encapsulen la lògica reutilitzable utilitzant la API de composició.

// useCounter.js
import { ref } from 'vue';

export function useCounter() {
  const count = ref(0);
  const increment = () => count.value++;
  return { count, increment };
}

// Component.vue
<script setup>
import { useCounter } from './useCounter';

const { count, increment } = useCounter();
</script>

<template>
  <div>
    <p>{{ count }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

  1. Exercicis pràctics

Exercici 1: Crear un comptador amb la API de composició

  1. Crea un component que utilitzi ref per crear un comptador.
  2. Afegeix un botó per incrementar el comptador.
  3. Mostra el valor del comptador en el template.

Solució:

<script setup>
import { ref } from 'vue';

const count = ref(0);
const increment = () => count.value++;
</script>

<template>
  <div>
    <p>{{ count }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

Exercici 2: Crear una propietat computada

  1. Crea una propietat computada que dobli el valor del comptador.
  2. Mostra el valor de la propietat computada en el template.

Solució:

<script setup>
import { ref, computed } from 'vue';

const count = ref(0);
const doubleCount = computed(() => count.value * 2);
const increment = () => count.value++;
</script>

<template>
  <div>
    <p>Count: {{ count }}</p>
    <p>Double Count: {{ doubleCount }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

Conclusió

La API de composició de Vue 3 proporciona una manera poderosa i flexible de gestionar la lògica dels components. Amb setup, ref, reactive, computed, watch i els mètodes de cicle de vida, podem crear components més organitzats i reutilitzables. Els composables ens permeten encapsular la lògica reutilitzable de manera eficient. Practicar aquests conceptes és clau per dominar la API de composició i aprofitar al màxim les seves capacitats.

Curs de Vue.js

Mòdul 1: Introducció a Vue.js

Mòdul 2: Conceptes bàsics de Vue.js

Mòdul 3: Components de Vue.js

Mòdul 4: Vue Router

Mòdul 5: Gestió d'estat amb Vuex

Mòdul 6: Directives de Vue.js

Mòdul 7: Plugins de Vue.js

Mòdul 8: Proves en Vue.js

Mòdul 9: Conceptes avançats de Vue.js

Mòdul 10: Construcció i desplegament d'aplicacions Vue.js

Mòdul 11: Projectes de Vue.js del món real

© Copyright 2024. Tots els drets reservats