React’s Deep Sea Dive: useSyncExternalStore & useTransition in Real World

SHUBHAM GAUTAM
2 min readAug 21, 2023

--

Photo by Talia Cohen on Unsplash

Hey React enthusiasts! 🌍

React’s evolving faster than you can say “useState”, right? Let’s unravel a couple of these fresh pearls — useSyncExternalStore and useTransition—through tangible, real-world examples.

1. useSyncExternalStore: The Mailman Analogy 💌

Imagine you’re eagerly waiting for letters (data) from a friend living abroad (an external source). Instead of constantly peeking through the window, you trust your dedicated mailman (our useSyncExternalStore hook) to notify and hand them over to you.

import { createStore } from 'use-sync-external-store';

// This store can be seen as the foreign post office.
const myStore = createStore(initialState, reducer);
function MailboxComponent() {
// You waiting for the mail!
const letters = useSyncExternalStore(myStore.subscribe, myStore.getState);
return <div>{letters.fromFriend}</div>;
}

Real-world Perk: This keeps your React state in sync with external data, providing consistent updates without the jarring experience of constantly polling or over-fetching data.

2. useTransition: The Busy Restaurant Scenario 🍝

You’re at a packed restaurant. You’ve placed your order, and while you’re waiting, the waiter keeps you engaged with some delightful appetizers. This smooth experience is exactly what useTransition offers with UI updates.

const [isPending, startTransition] = useTransition({ timeoutMs: 3000 });

startTransition(() => {
placeOrder(newDish);
});
return (
<div>
{isPending ? "Enjoy these appetizers while we prepare your dish!" : "Bon appétit! Your dish is ready."}
</div>
);

Real-world Perk: Users aren’t left staring at a blank screen or jarring updates. They get a gentle transition, making your app feel speedy and considerate.

Performance & Tangible Benefits

When applied thoughtfully, these hooks aren’t mere novelties. They directly translate to user-centric, efficient, and intuitive web apps. Imagine using an app that seamlessly updates without lag or sudden content shifts. That’s the magic useSyncExternalStore and useTransition are driving towards.

To all budding coders, seasoned developers, and curious minds: Real-world React is about making the virtual feel tangible, relatable, and user-focused. Dive deeper, build better, and let’s create digital experiences that resonate!

Stay curious and keep iterating! 🚀

Now, if you found this insightful, toss me a shout on my Medium, Twitter, or LinkedIn. Or simply share it with other wandering souls in the world of web dev! 🌐 Cheers and keep the code flowing! 🍻🖥️

--

--

No responses yet