Course contentsShow
← React Native
Lesson 45 of 1,5551. The React Native ArchitectureFree lesson

Concurrent React in Native

You will be able to explain the impact of concurrent rendering features on mobile UI responsiveness.

In this lesson, you will learn how Concurrent React helps keep your mobile UI responsive by allowing React to interrupt long-running tasks.

The Old Way: Blocking the Main Thread

In standard React, rendering is a "blocking" process. If you trigger a massive update—like filtering a list of 1,000 items or transitioning between complex screens—React tries to calculate the entire new UI tree in one go. Because JavaScript and the main UI thread often share resources, a heavy calculation can "freeze" the app. If a user taps a button while this calculation is running, the app appears unresponsive because it is too busy finishing the previous render to notice the touch event.

The Concurrent Solution: Interruptible Rendering

Concurrent React changes this by making rendering interruptible. Think of it like a chef in a kitchen: instead of finishing one complex dish completely before starting another, the chef can pause to attend to a high-priority customer order (like a user tap) before returning to the original dish.

React now works on the "render" phase in the background. It builds the new UI tree, but if a high-priority interaction (like a button press or scroll gesture) happens, React can pause its work, handle the input immediately, and then resume or discard the ongoing render.

A Concrete Example

Consider a search input that updates a list of items as you type:

// In a concurrent-enabled app:
const [query, setQuery] = useState("");
const [list, setList] = useState(largeData);

// By marking this as a transition, React knows the update 
// is lower priority than the keystroke itself.
const updateSearch = (value) => {
  startTransition(() => {
    setQuery(value); // Heavy filtering happens here
  });
};

In the code above, startTransition tells the Native layer: "This list filter is important, but don't let it stop the keyboard from typing smoothly." Because the Native UI thread stays free, the user never perceives a "jank" or delay, even if the underlying data calculation takes a few milliseconds longer to complete.

Key Takeaway: Concurrent React improves responsiveness by allowing the renderer to pause background UI updates so that urgent user interactions, like taps and scrolls, are processed without delay.