سایر کتابخانهها و فریمورکها
در کنار React، کتابخانهی GSAP بهخوبی با بیشتر فریمورکها و کتابخانههای مدرن جاوااسکریپت کار میکند. چون GSAP وابستگی خاصی به ساختار DOM ندارد و فقط نیاز دارد که المانهای هدف در زمان اجرای انیمیشن در صفحه موجود باشند، میتوانید تقریباً در هر محیطی از آن استفاده کنید.
🔹 Vue.js
نصب:
استفاده در Composition API
-
در Vue 3 میتوانید از
onMounted
وonBeforeUnmount
استفاده کنید. -
برای پروژههای بزرگ توصیه میشود از gsap.context برای پاکسازی خودکار بهره بگیرید.
🔹 Svelte
Svelte بهصورت پیشفرض DOM را بعد از mount ایجاد میکند، بنابراین کافی است از lifecycle خودش استفاده کنید:
-
به دلیل بازسازی سریع DOM در Svelte، بهتر است انیمیشنها را در
onMount
آغاز کنید.
🔹 Angular
Angular از ساختار کلاسیک Component برخوردار است.
-
نصب:
-
استفاده در کامپوننت:
-
از
ngAfterViewInit
استفاده کنید تا DOM حاضر باشد.
🔹 Next.js / Remix (SSR)
-
کد GSAP باید فقط در سمت Client اجرا شود.
-
در Next.js:
🔹 Three.js
برای انیمیشن پارامترهای سهبعدی، GSAP انتخاب محبوبی است:
-
میتوانید مختصات دوربین، نور، متریال و غیره را انیمیت کنید.
🔹 jQuery یا Vanilla JS
GSAP با jQuery تضاد ندارد. میتوانید به راحتی از انتخابگرهای jQuery یا querySelector استاندارد استفاده کنید:
💡 نکات حرفهای
-
Plugin Registration:
قبل از استفاده از پلاگینها (ScrollTrigger، Draggable و …) حتماًgsap.registerPlugin()
را فراخوانی کنید. -
Context/Cleanup:
در فریمورکهای SPA، برای جلوگیری از memory leak، همیشه انیمیشنها را هنگام unmount پاک کنید (context.revert()
یا lifecycle مناسب). -
Server-Side Rendering:
GSAP نیاز به DOM دارد. هر جا که SSR است (Next.js، Nuxt و …) کد انیمیشن را در بخش کلاینت بنویسید.
✅ خلاصه
فریمورک / کتابخانه | نقطهی lifecycle مناسب |
---|---|
React | useGSAP یا useLayoutEffect |
Vue 3 | onMounted + onBeforeUnmount |
Svelte | onMount |
Angular | ngAfterViewInit |
Next.js / Remix | کامپوننت Client-only |
Three.js | هر زمان که Scene آماده شد |
GSAP به دلیل طراحی مستقل از DOM، با تقریباً همهی فریمورکها و کتابخانههای مدرن سازگار است؛ فقط کافی است زمان اجرای انیمیشن بعد از ایجاد عناصر در DOM باشد و در SPAها حتماً پاکسازی فراموش نشود.