EASY React Animation with useGSAP()
Вставка
- Опубліковано 11 чер 2024
- GSAP itself is completely framework-agnostic and can be used in any JS framework without any special wrappers or dependencies. However, this hook solves a few React-specific friction points for you so that you can just focus on the fun stuff. 🤘🏻
useGSAP() is a drop-in replacement for useEffect() or useLayoutEffect() that automatically handles cleanup using gsap.context().
Import the useGSAP() hook from @gsap/react and you're good to go! All GSAP animations, ScrollTriggers, Draggables, and SplitText instances created when the useGSAP() hook executes will be reverted automatically when the component unmounts and the hook is torn down.
To learn more, head over to gsap.com/react
@gsap/react on npm → www.npmjs.com/package/@gsap/r...
codepen starter → codepen.io/GreenSock/pen/OJmQvLZ
StackBlitz starter → stackblitz.com/edit/gsap-reac...
----- Video Contents -----
00:00 - Intro
01:02 - What is useGSAP?
01:22 - Why is it useful in React?
02:21 - Cleanup with gsap.context (the old way)
03:19 - useGSAP() (the new way)
04:13 - Scope for selector text
06:04 - Dependencies (reacting to changes in state)
08:10 - contextSafe (animating on interaction)
12:09 - Bye! - Наука та технологія
Her smile is as beautiful as the easy integration of GSAP with React and smoothness by which GSAP controls and animates the DOM elements. Thank you instructor and mainly thank you developers for the useGSAP hook which makes it so easy, gimme a second to acknowledge your greatness 🙇♂🙇♂🙏🙏
Your laughing and smiling throughout the video makes me happy. Great video. Thank you.
Beautiful addition to Gsap React ecosystem, thank you team GSAP 👍✨
Clear, succinct and comprehensive. Your calm energy is just cherry on top!
That's the affectionate and mildly manic smile all develop who have dared attempt complex GSAP animations in React 18 (because it's better to smile than to cry) 😂
no lie detected.
Amazing work here, seeing the react hook type syntax with GSAP in it on the thumbnail blew my mind. As always, excellent tutorial by Cassie and great documentation. Will definitely be using it soon enough !
This is so awesome. I started my animation journey with gsap but had to switch when I started working in react. I'm so glad you found a solution for the too many refs problem. Thank you. Definitely gonna try this out in my next project
Had these issues with cleaning up and killing animations, it's perfect you have a hook. Works amazing, just plug and play 👏
whoa this got released just in time for me to build my portfolio site. thank you! you're covering so many important essentials and esoteric React concepts.
So glad this helped you!
Oh I've been waiting for this! Good work team! 💚
Props to all your hard work, not only on this video, but on the documentation and the Starter examples on Stack blitz. It’s extremely helpful! I’ll be playing with it this week and I think I’ll be finally taking the leap into Paid GSAP after my next check! Thanks for all you do!
Oh this is so nice to hear, thanks for taking the time to leave such a nice message - pop into the forums if you have any feedback or need any help. 💚
It should be illegal to use your guys' platform for free. I'm absolutely blown away how vastly superior GSAP compares to other animation solutions. Very well done.
Ha, This made us laugh, thanks 💚Honestly though - We appreciate every person that supports our development work through Club GSAP! That support allows us to keep the tools free for the majority.
@@GreenSockLearning we do really appreciate your amazing continuous efforts, great job.
Officially starting using gsap in my react projects. Awesome
I love how you incorporated Brody into your presentation! It's a testament to your natural ability to go with the flow that, while appears so effortless, takes great skill. Your instructions were clear and speak to larger concerns all React developers should consider even beyond specifically using GSAP. Thanks for the obvious effort you took to show us best practices!
I just had to accept that Brody just pops by occasionally, even if I'm recording, I have no choice in the matter. If I try to lock him out of my office he howls until I let him in 😂
I love how calmly you explain things.
and i love watching her
Took a little too much brain cells to understand, but got it watching twice! Nice video, thanks a lot!
wow. fantastic job on the video! editing is crazy good. can't even imagine how long it took to put it all together and have it flow so well.
Means a lot Carl, thanks. I STILL messed up with an audio overlap at 7:40. I'm getting better though, it's a whole skill in itself, I have so much more respect for video creators now. Time consuming stuff. 😂
will you be working on some react content in the future?
will you be working on some react content in the future?
Thanks for your interest in my GSAP training. No immediate plans for React at this time. The GSAP team has really great resources to get you going.
@@snorklTV Thank you for the answer! I have your course! And it's extremely great! Do you know any gsap course with react?
Amazing developments! Nice work, and thank you!
Wow what an excellent demo of this. Thanks!
Incredible! What a great explainer video. I’m excited to try this out!
this was a tremendous walkthrough, thank u!!
I must learn gsap after this video, and ofc try this hook. Nice job 👏
This us pure gold! Thank you, Cassie
Woop woop! Hope it helps you!
"drowining in a sea of refs.." - yep, I know that feeling!
This was a great video, I’ll be testing it out
had me at "awkwardly named bit of nonsense"😂
Very imortant update, great video.
it simplify a lot and nice presentation
Great presentation.
More tutorial with useGSAP please! .... Thanks a lot for this, fantastic job ❤
It might be a problem solving hook for cleanup issues. Great work
Great work!
Finally! GSAP rocks
Great and easily understandable presentation. Also, the video editing is top notch! I'm impressed!
Except a little bug at 7:41 :P
argh. There's always one 🫠 @@gorki90
Oooh niiice!! ❤❤ praise be!! 🙌🙌
Awesome hook! Your presentations are always very good👍🏻
You're so good!
wow, nice work)
wow very much needed
GSAP is lovely ❤
tnx for your content
Love it!
nice! thanks!
Awesome tutorial. I will be improving readability and clean code with this hook. I am feeling lucky to see this video. 🎉❤
it's amazing
Absolutely awesome. Thank you for making this!
🙏 Thanks for that
Nice and smart girl!
It’s a great video mam ❤
Provide some use cases scroll trigger animation using react and gsap.
Again thank you 🙏
A little audio overlap happening around 7:40 but pretty stocked about the React love you're sending us lately, thanks!
It's a shame youtube doesn't allow re-uploads, but thanks for the spot.
Can we use it for react native expo or any advice except animated for expo?
I'm here since I know you from a podcast and I want to know where I can practice GSAP if I want to become better, is there a page with exercises somewhere? I'm the one who learn by doing
finally waited for this for so long
awesome
Thank you my poussy
Nice work! appreciate your kindness for publishing it free!
I am going to Use GSAP in my Gatsby project. It's the first time I'm using GSAP and Gatsby. I really need this. Thanks
Hi, How do I properly use matchMedia inside the hook?
smart dev
(I bet this comment will hit the spam filter because I mention Discord but i'll try it anway). In the Framer discord there's frequent questions on how to implement GSAP animations into Framer websites. Some short video showcasing how to do that would be quite valuable.
Thanks for the feedback - We're not really familiar with framer's GUI, but GSAP is just JS and can be added wherever you can add custom code.
for vue.js do u planning something like this?
Btw, your stackblitz example for your Next13 Page transitions is not currently working… it’s failing at the start command.
can anyone point out to me how I can animate during unmount and mount using gsap. like modal view and exit.
Thanks for the hook!, but what if i need to use matchMedia that already has context within it?
Hey there! Good question, you can use matchMedia inside useGSAP, useGSAP will revert the matchMedia context. codepen.io/GreenSock/pen/OJmQvLZ
We'll add this to the docs!
yay!
Is this working for React Native too?
😍Cassie
Nice will add this to my bag, what breed of dog is that btw😅 so cute
He's a rescue street dog so we don't know what sort. He's a good boy though. 🐕
чудесная девушка, еще и умная)
O M G
Nice, that came at the right time!!! I also have to praise Cassie's videos. They are always some of the best learning material you can find.
I love to hear this 💚 Always trying to get better at it!
0:07
React is a Library, not a framework...☺
Wooow ! Is that the Pixel Spirit Deck in the background ? ( Maybe I should use it after all this time ) ;) Otherwise, great video, I'm going to check out this new hook ! Thanks. ☀
Good eye! It is indeed
❤❤❤❤
can you make something for angular. I love to work with gsap in angular framework.
Have you used GSAP in angular? Did you have any specific friction points?
@@GreenSockLearning I have used but I just want to tell you everyone does not use react. So pls make angular specific video also.it will help angular develpers. Thanks
like for the dog, great video though 😅
Hy , mam please recommend me easy book for learning react js . With easy words of English
Hey nice library but it just seems like it’s a lot of work for animations that you can probably do with css. I mean even librairies like framer motion are probably gonna turn obsolete when the browsers can do it by themselves. Animations are nice but sometimes simplicity is better.
Not really accurate. The animations shown here were deliberately simple for demo purposes. But GSAP allows for a huge amount that just isn't possible using CSS or framer motion.
GSAP provides a lot more control over your animations, especially nested animations that are also dependent on the change of values. If you're doing simpler animations, CSS is the way to go for sure. But GSAP is great for much more complex stuff when you need it.
looks worth giving a try , also will be spamming here if things break.
Our forums are far more responsive!
Is something like this available in Vue ?
At the moment we advise using gsap.context() for vue - (which is what this hook uses under the hood) examples here -
gsap.com/resources/frameworks/
@@GreenSockLearning thank you.
Me: I like that accent. I wonder where it comes from
Also me: React is now a framework
Some random guy: Don't take everything literally
What is she smiling at❤😂🌹
can i use gsap in react native ?
Sure, I don't see why not. GSAP can animate anything that JavaScript can touch. I have zero experience with React Native personally, but I can't imagine why there'd be a problem.
@@JackDoyleGSthere will be a problem because GSap animates html elements.
How is that going to work with native?
@@veedjohnson GSAP can animate literally anything that JavaScript can touch - not just DOM elements.
@@JackDoyleGS might give it a shot can you explain how it will work with the class name references used in the video? Given that react native does not use classes for it's elements
@@veedjohnson I have no knowledge of React Native, sorry. But you can target literally any object that JavaScript can touch, even a generic object like {x: 100}. If you're not dealing with DOM elements, then you wouldn't use selector text for your target - you'd reference the objects themselves whose properties you're animating.
please provide documentation available for French speakers
I'm afraid we only have english docs. Our company is small (three people) and we don't speak french. I'd suggest using a translation extension, www.deepl.com/en/chrome-extension
If you get stuck we can try and help you in the forums. Sorry we can't help more here.
@@GreenSockLearning ok okay, good job to you anyway, I use gsap in all my projects and I am satisfied with the results and the performance that gsap brings ❤ I hope that there will be a French version of the documentation one day 😊
Hello Beauty )
Its so sad that React is so toxic at this point that we need adapters for everything. React is ruining what programming means and its ruining developers overall. Get out of react, try solidJS and be free.
edit: I recommend SolidJS here because it is almost 1:1 to react, but without many of the bad parts of React.
Could you explain what you mean by toxic?
@@adeleke5140 yes ! what I mean by toxic is that React as a library is contaminating everything what was built up to now. If you want to use a 3rd party code, you need to "Reactify" it.
The community is great, don't take me wrong, but it has gone too far to my taste. Really simple things became difficult, and the quality of our apps has been getting directly affected by it. The need of a special hook to make greensock would be an example. State management in react is another jungle we could talk about, a new library comes out every week.
Hope this helps clarify my opinion :)
skill issue
@@linorabolini lol, from the way how react works its a framework, not library. I would rather pick vue/angular/svelte than solid. Hooks are just wrappers or additional abstraction(function) to make us more productive or comfortable (DX). State management in react is really fine since its hella open. The real problem is using old problematic ass tech like redux, mui or other piece of sheet instead of zustand,ss or just loaders per route. The quality of our app depends on ourselves(always) cuz of architecture and code quality, tool is only a tool it doesnt makes mess for no reason and if do youre using a wrong tool or u hit its limits.
@@gcash49 no, is not that. i have been working with react for the last 7 years. Or more actually. I thought it was the way to go, but i realized how much damage it made recently
if you're getting a "Cannot use import statement outside a module" on plugin imports, try this
import { Draggable } from "gsap/dist/Draggable";
Hey, I'm looking for the GSAP discord server. Could you send an invite so that I may join if it exists?
Hey there! We're considering setting up a discord for club members but it doesn't exist yet. This is a nice animation discord that we have a channel in though - discord.gg/uyVxpuwc8f
@@GreenSockLearning That would be awesome if and when you do! Thanks for that invite!