Skill'in Kendi İfadeleriyle
React ve Next.js gibi React tabanlı framework'lerde animasyon için resmi GSAP skill'i. useEffect() veya useLayoutEffect() yerine @gsap/react'ten gelen useGSAP() hook'unu öne çıkarır, gsap.registerPlugin ile kaydedilir ve .box gibi seçicilerin yalnızca bileşen içindeki elementlerle eşleşmesi için bir scope gerektirir.
Hedef olarak ref'leri, hook'un opsiyonel ikinci argümanını (bir dependency array veya dependencies/scope/revertOnUpdate config nesnesi), hook çalıştıktan sonra pointer handler'larında oluşturulan animasyonlar için contextSafe'i ve düz bir useEffect için gsap.context() ile ctx.revert() yedek çözümünü kapsar. Ayrıca SSR kuralını belirtir: GSAP tarayıcıda çalışır, dolayısıyla sunucu render'ı sırasında hiçbir şey çalıştırılamaz.
Neler üretir
- Animasyonları ve ScrollTrigger'ları unmount sırasında otomatik olarak geri alınan bir useGSAP bloğu
- ctx.revert() çağıran bir cleanup döndüren bir useEffect gövdesi
- Döndürülen cleanup'ta event listener'ı kaldırılan, contextSafe ile sarmalanmış bir click handler
- Yalnızca istemci tarafında çalıştırma; tree-shaking veya bundle boyutu için seçenek olarak useEffect içinde dinamik import
Nasıl Çalışır
- 01Gsap ve @gsap/react'i Kurun
Kurulum bloğunda iki paket listelenir: GSAP kütüphanesi, ardından hook'u sağlayan GSAP React paketi.
- 02Herhangi Bir GSAP Kodundan Önce useGSAP'ı Kaydedin
Hook bir plugin olarak kaydedilir ve dosya, bu kaydın useGSAP'ı veya başka herhangi bir GSAP kodunu çalıştırmadan önce gerçekleşmesi gerektiğini belirtir.
- 03Animasyonu useGSAP İçinde Bir Scope ile Yazın
Seçiciler, scope olarak bir ref veya element geçirilerek bileşen köküyle sınırlandırılır.
- 04Render Sonrası Callback'leri contextSafe ile Sarmalayın
Daha sonra oluşturulan animasyonlar, örneğin pointer event handler'larında, context dışında kaldığından, hook'un dönüş değerinden alınan contextSafe ile sarmalanır.
- 05gsap.context() Artı ctx.revert()'e Geri Dönün
useGSAP bir seçenek olmadığında, aynı desen useEffect içinde çalışır ve cleanup her zaman ctx.revert()'ı çağırır.
- 06Tüm GSAP Kodunu İstemcide Tutun
Çalıştırmayı sunucu render'ının dışında tutan şey useGSAP veya useEffect'tir; useEffect içinde dinamik import, bundle boyutu önemli olduğunda bir seçenek olarak sunulur.