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
- Introducció a la API de composició
- Setup Function
- Refs i Reactive
- Computed i Watch
- Mètodes de cicle de vida
- Composables
- Exercicis pràctics
- 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.
- 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 decount
.
- 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
- 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
- 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'); });
- 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>
- Exercicis pràctics
Exercici 1: Crear un comptador amb la API de composició
- Crea un component que utilitzi
ref
per crear un comptador. - Afegeix un botó per incrementar el comptador.
- 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
- Crea una propietat computada que dobli el valor del comptador.
- 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
- Què és Vue.js?
- Configuració de l'entorn de desenvolupament
- Creant la teva primera aplicació Vue
- Entenent la instància de Vue
Mòdul 2: Conceptes bàsics de Vue.js
- Sintaxi de plantilles
- Enllaç de dades
- Propietats computades i observadors
- Enllaços de classes i estils
- Renderització condicional
- Renderització de llistes
Mòdul 3: Components de Vue.js
- Introducció als components
- Props i esdeveniments personalitzats
- Slots
- Components dinàmics i asíncrons
- Comunicació entre components
Mòdul 4: Vue Router
- Introducció a Vue Router
- Configuració de Vue Router
- Rutes dinàmiques
- Rutes niades
- Guàrdies de navegació
Mòdul 5: Gestió d'estat amb Vuex
- Introducció a Vuex
- Estat, getters, mutacions i accions
- Mòduls a Vuex
- Utilitzant Vuex en components
- Patrons avançats de 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
- Funcions de renderització i JSX
- Renderització del costat del servidor (SSR) amb Nuxt.js
- API de composició de Vue 3
- Optimització del rendiment