Syntax - Tasty Web Development Treats
Syntax - Tasty Web Development Treats

React 18 - A Look Ahead

In this episode of Syntax, Scott and Wes talk about everything coming in React 18! Freshbooks - Sponsor Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the “How did you hear about us?” section. Sentry - Sponsor If you want to know what’s happening with your code, tra

Featured Speakers

Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers Host

Topics Discussed

Episode Summary

Executive Summary: The episode centers on React 18’s major updates: automatic batching, a new root render API, Suspense and SuspenseList, strict effects mode, transitions, and especially SSR and React Server Components. Wes and Scott praise the improvements while arguing React has historically exposed too many foot guns and confusing abstractions. They also connect the changes to broader trends toward server-rendered, PHP-like workflows and better developer ergonomics.

Main Topics: Automatic batching: React 18 will automatically batch multiple state updates into a single render, reducing unnecessary re-renders and simplifying performance concerns for developers. New root render API and hydration changes: ReactDOM.createRoot replaces older render patterns and is tied to a reworked SSR/hydration story that removes the separate hydrate API and aims to streamline client/server rendering. Suspense and SuspenseList: Suspense finally becomes a practical feature for coordinating loading states, fetching data closer to where it’s used, and optionally orchestrating the reveal order of multiple suspended components. Transitions and urgent vs non-urgent updates: The useTransition hook distinguishes urgent UI updates from deferred ones, helping React keep interactions responsive while allowing lower-priority state changes to wait. SSR improvements and lazy loading: The hosts focus heavily on server-side rendering pain points, especially code splitting and React.lazy, and express hope that React 18 makes SSR much more workable without heavy framework-specific workarounds. React Server Components and the shift toward server-first UI: The discussion frames React Server Components as a big step toward rendering components on the server and sending HTML over the wire, similar to modern server-driven patterns in other ecosystems. Developer ergonomics, naming, and foot guns: A recurring theme is that React could reduce friction by hiding complexity and using clearer naming, instead of making developers memorize many edge cases and conceptual traps.

Key Arguments: Automatic batching removes a common manual performance concern by collapsing multiple state updates into one render. React’s API surface has historically been too easy to misuse, and React 18 appears aimed at reducing foot guns. The new root/hydration model is likely a prerequisite for deeper SSR and concurrency improvements. Suspense lets developers fetch data where it is needed while centralizing fallback UI higher up the tree. SuspenseList is mainly useful for large, coordinated interfaces where loading order matters. useTransition is not an animation API, but it helps separate immediate user interactions from lower-priority updates and may enable better animations later. SSR in React has been painful without frameworks like Next.js; React 18 may make it much more practical. React Server Components move React closer to server-rendered, HTML-first patterns that feel similar to PHP/Laravel/Rails paradigms. Good docs and diagrams are essential because the underlying concepts are jargon-heavy and difficult to reason about without visualization.

Data Points: React 18 availability: Announced as a major upcoming release - The episode is about what React 18 will bring and why it matters. Suspense discussion history: March 18th, 2019 - Wes references a previous Syntax episode on React Suspense from this date. Strict mode announcement: React 16 - The hosts note that strict mode was originally introduced in React 16, with strict effects coming in React 18. Next.js integration status: “pretty soon after React 18 is announced” - Wes says the Next.js team has been working on support and expects quick adoption. FreshBooks free trial: 30-day unrestricted free trial - Sponsor mention for FreshBooks. Century promo: 2 months for free - Sponsor mention with coupon code tasty treat. RevenueCat integrations: Android and iOS - Sponsor pitch highlights mobile in-app purchase support across platforms. Syntax coupon: 10 loonies off - Wes plugs beginnerjavascript.com with a Syntax coupon.

Pivotal Quotes: "Why can't React just like do that for us?" — Scott: On automatic batching and the desire for React to reduce manual performance tuning and foot guns. "It's very hard to swim upstream in React." — Scott: On the difficulty of managing loading states and data flow without higher-level primitives like Suspense. "Why doesn't this just work?" — Scott: On SSR and code-splitting frustrations that React 18 appears to address.

Implications: React 18 pushes React toward safer defaults, better SSR, and server-driven rendering. Listeners should expect fewer manual workarounds, but framework support and new mental models will still matter.

🔓 Sign Up for Unlimited Episode Search

About Syntax - Tasty Web Development Treats

View all episodes from Syntax - Tasty Web Development Treats