cover-img

The useTransition hook

19 January, 2023

0

0

0

The useTransition hook

The useTransition hook in React is a way to manage animation and other side effects in a functional component. It allows developers to create transitions between states without the need to use classes or lifecycle methods. The useTransition hook takes in a function that returns an array of transition objects, and it allows the user to define the states and transitions between them. This allows developers to create complex animations and transitions without the need to use classes or lifecycle methods. By using the useTransition hook, developers can ensure their React applications are as efficient and performant as possible.

useTransition hook example

Here's an example of how you might use the useTransition hook in a component that renders a list of items:


import { useTransition, animated } from 'react-spring';

function MyComponent({ items }) {
const transitions = useTransition(items, item => item.id, {
from: { opacity: 0, transform: 'translate3d(0,-40px,0)' },
enter: { opacity: 1, transform: 'translate3d(0,0px,0)' },
leave: { opacity: 0, transform: 'translate3d(0,-40px,0)' },
});

return (
<>
{transitions.map(({ item, props, key }) => (
<animated.div key={key} style={props}>
{item.text}
</animated.div>
))}
</>
);
}

In this example, the useTransition hook is used to create a set of transitions for the items array. The first argument is the array of items that need to be animated, the second is a unique key to identify the item, which in this case is the id of each item.

The second argument is the animation configuration object, which contains the from, enter and leave styles. these styles define the starting, final, and end styles of the animation, respectively.

Each item returned in the transitions array have these properties :

  • item: is the actual data of the current item
  • props: is the current spring values that represents the animation progress of the current item
  • key: is the key that we passed in useTransition

Finally, the returned transitions from the useTransition hook are mapped over to create a set of animated divs. The style prop is set to the props of each transition, which will apply the current animation values to the div. And by wrapping the div with animated.div it's making sure that the animation is applied correctly.

You can also customize and play with the duration of the animation, easing functions and many more, by passing additional options like config in the transition object.

const transitions = useTransition(items, item => item.id, {
from: { opacity: 0, transform: 'translate3d(0,-40px,0)' },
enter: { opacity: 1, transform: 'translate3d(0,0px,0)' },
leave: { opacity: 0, transform: 'translate3d(0,-40px,0)' },
config: { duration: 2000 },
});

This will make the animation take 2s to complete.

The useTransition hook allows you to perform animations on elements in a natural way, creating smooth transitions as elements are added or removed from the DOM. It provides a lot of flexibility in terms of animation customization and it is a powerful tool for adding animations in your react application.

References

https://beta.reactjs.org/reference/react/useTransition
https://blog.webdevsimplified.com/2022-04/use-transition/


[useTransition](https://beta.reactjs.org/reference/react/useTransition)


[useTransition Hook Explained](https://blog.webdevsimplified.com/2022-04/use-transition/)

0

0

0

ShowwcaseHQ
Showwcase is where developers hang out and find new opportunities together as a community

More Articles

Showwcase is a professional tech network with over 0 users from over 150 countries. We assist tech professionals in showcasing their unique skills through dedicated profiles and connect them with top global companies for career opportunities.

© Copyright 2025. Showcase Creators Inc. All rights reserved.