React Holiday

#16: Start your Transitions!

If you have an app that fetches data, you probably use react-query, redux, Apollo, or URQL to fetch data.

When fetching data, you can render components conditionally based on a pending, error, or success state.

startTransition (for data-fetching) introduces a new state: stale. That isn’t official language but it’s how I think about it. startTransition can keep a stale render in view while resolving the next view.

Check out the onClick handler from yesterday’s StackBlitz demo. Without startTransition, the view disappears from the screen as soon as the “Next” button is clicked.

The "stale" view disappears when clicked

When we wrap our actions in startTransition, the “stale” view sticks around until the next view either errors or resolves. This is a much more stable user experience.

The "stale" view sticks around until the next view resolves

Check out the code and comments in today’s StackBlitz demo.

startTransition is powerful but limited!
Next, we’ll see how useTransition can help us style the “stale” view..

🐦 chantastic