Nelle parole della skill
Guida ufficiale di GSAP per animare componenti Vue, Nuxt, Svelte e SvelteKit, dove il ciclo di vita del framework determina quando i nodi DOM esistono. Indica all'agente di creare tween e ScrollTrigger solo dopo il mount — onMounted in Vue, onMount in Svelte — all'interno di gsap.context(scope) con il ref del contenitore passato come secondo argomento, così che selettori come .box restino confinati a quel componente.
Allo smontaggio, ctx.revert() termina le animazioni e i ScrollTrigger e ripristina gli stili inline. Copre anche un composable useGSAP di Nuxt 4 che registra ScrollTrigger una sola volta e carica in modo lazy plugin come SplitText tramite import dinamico, oltre ad aggiornare le posizioni dei trigger dopo cambiamenti di layout.
Che cosa produce
- Un progetto di esempio eseguibile con Vite + Vue 3 che dimostra i pattern di context e cleanup.
- Un composable Nuxt, utilizzato nei componenti tramite useGSAP(), che esporta l'istanza gsap e il metodo di lazy loading.
- Un helper lazyLoadPlugin tipizzato che importa dinamicamente un plugin, lo registra con gsap e lo restituisce.
Come funziona
- 01Attendere il DOM Prima di Creare
Tween e ScrollTrigger vengono creati solo quando il DOM del componente è disponibile, usando onMounted in Vue o onMount in Svelte, così il ref del contenitore esiste effettivamente.
- 02Limitare Tutto alla Radice del Componente
L'intera configurazione dell'animazione è racchiusa in gsap.context(callback, scope), con il ref del contenitore passato come secondo argomento, così che selettori come .item si risolvano solo all'interno di quel sottoalbero.
- 03Eseguire il Revert nel Teardown del Framework
Ogni esempio conserva il context in una variabile e chiama ctx.revert() da onUnmounted (Vue) o dalla funzione di cleanup restituita da onMount (Svelte).
- 04Aggiornare Dopo le Modifiche di Layout
Le posizioni dei ScrollTrigger vengono ricalcolate una volta stabilizzato il layout, ad esempio dopo che il caricamento dei dati modifica le posizioni dei trigger.