React (هوک useGSAP)
در نسخههای جدید GSAP (۴ و بالاتر) کتابخانهی رسمی @gsap/react
یک هوک سفارشی به نام useGSAP
ارائه میکند که کار با GSAP در کامپوننتهای React (بهویژه با React 18 و معماری Concurrent) را ساده و ایمن میکند.
🔹 نصب
یا با Yarn:
🔸 ایدهٔ اصلی
هوک useGSAP
:
-
انیمیشنهای شما را پس از mount شدن عنصر اجرا میکند.
-
از Context داخلی GSAP استفاده میکند تا هنگام unmount شدن کامپوننت، همه انیمیشنها خودکار cleanup شوند (نیازی به دستی پاک کردن نیست).
-
شبیه
useLayoutEffect
عمل میکند ولی بهینهتر برای GSAP است.
🟢 مثال پایه
-
تمام انیمیشنهای تعریفشده در کالبک
useGSAP
بهطور خودکار در context قرار میگیرند و هنگام خروج از DOM پاک میشوند.
🟡 استفاده از انتخابگر (selector)
useGSAP
دومین آرگومان اختیاری میگیرد که scope نام دارد؛ این امکان میدهد با ()context.selector
مثل jQuery انتخاب انجام دهید:
🟠 Timeline در React
میتوانید تایملاین را داخل useGSAP
بسازید و بعداً آن را کنترل کنید:
⚡ نکات حرفهای
-
استفاده با ScrollTrigger
پلاگینها را قبل از استفاده ثبت کنید: -
SSR (Next.js / Remix)
-
هوک فقط در سمت کلاینت اجرا میشود.
-
اطمینان حاصل کنید که
window
وجود دارد (کد GSAP را در کامپوننتهای Client-only بنویسید).
-
-
تفاوت با useEffect/useLayoutEffect
-
useGSAP
خودش ازuseLayoutEffect
استفاده میکند و با GSAP Context ادغام شده است. -
نیازی به
return () => ctx.revert()
نیست؛ خودکار انجام میشود.
-
✅ خلاصه
-
useGSAP
→ هوک رسمی برای React. -
تمام انیمیشنها را در یک context ایمن اجرا و پاک میکند.
-
پشتیبانی از selector داخلی و scope برای انتخاب المانها.
-
مناسب برای Timelineهای پیچیده، پلاگینهایی مثل ScrollTrigger، و جلوگیری از memory leak.
با این روش، GSAP بهراحتی در معماری مدرن React (React 18/Next.js) قابل استفاده و مدیریت است.