Skill'in Kendi İfadeleriyle
Vue, Nuxt, Svelte ve SvelteKit bileşenlerini animasyonlandırmak için resmi GSAP kılavuzu; burada çerçeve yaşam döngüsü, DOM düğümlerinin ne zaman var olduğunu belirler. Ajana, tween'leri ve ScrollTrigger'ları yalnızca mount'tan sonra oluşturmasını söyler — Vue'da onMounted, Svelte'de onMount — ve container ref'in ikinci argüman olarak geçirildiği gsap.context(scope) içinde, böylece .box gibi seçiciler o bileşenin içinde kalır.
Unmount sırasında ctx.revert() animasyonları ve ScrollTrigger'ları sonlandırır ve inline stilleri geri alır. Ayrıca ScrollTrigger'ı bir kez kaydeden ve SplitText gibi eklentileri dinamik import ile lazy load eden bir Nuxt 4 useGSAP composable'ını ve düzen değişikliklerinden sonra trigger konumlarının yenilenmesini de kapsar.
Neler üretir
- Context ve temizlik desenlerini gösteren, çalıştırılabilir bir Vite + Vue 3 örnek projesi.
- Bileşenlerde useGSAP() aracılığıyla kullanılan, gsap örneğini ve lazy loading yöntemini dışa açan bir Nuxt composable'ı.
- Bir eklentiyi dinamik olarak import eden, gsap'a kaydeden ve döndüren tip güvenli bir lazyLoadPlugin yardımcı fonksiyonu.
Nasıl Çalışır
- 01Oluşturmadan Önce DOM'u Bekleyin
Tween'ler ve ScrollTrigger'lar, yalnızca bileşenin DOM'u kullanılabilir olduğunda oluşturulur; container ref'in gerçekten var olması için Vue'da onMounted veya Svelte'de onMount kullanılır.
- 02Her Şeyi Bileşen Köküne Kapsayın
Tüm animasyon kurulumu, gsap.context(callback, scope) içine sarılır; container ref ikinci argüman olarak geçirilir, böylece .item gibi seçiciler yalnızca o alt ağaçta çözümlenir.
- 03Çerçeve Sonlandırmasında Geri Alın
Her örnek, context'i bir değişkende tutar ve onUnmounted'dan (Vue) veya onMount'un döndürdüğü temizlik fonksiyonundan (Svelte) ctx.revert()'i çağırır.
- 04Düzen Değişikliklerinden Sonra Yenileyin
ScrollTrigger konumları, düzen yerleştikten sonra yeniden hesaplanır; örneğin veri yüklemeleri trigger konumlarını değiştirdiğinde.