Logo

Developer learning path

React

React Lazy and Suspense

React Lazy and Suspense

9

#description

React Lazy and Suspense are both new features introduced in React 16.6 that help to improve the performance of your React applications, especially when you're dealing with large applications that have a lot of components.

React Lazy allows you to easily split your code into smaller chunks, which can be loaded on-demand when the user navigates to a specific route or interacts with a specific component. This helps to reduce the initial load time of your application and improves the user experience.

To use React Lazy, you first need to import the lazy function from the React library. This function accepts a function that returns a dynamic import, which loads the module on-demand.

Here's an example of how to use React Lazy:

                    
import React, { lazy, Suspense } from 'react';

const MyComponent = lazy(() => import('./MyComponent'));

function App() {
  return (
    <div>
      <Suspense fallback={<div>Loading...</div>}>
        <MyComponent />
      </Suspense>
    </div>
  );
}
                  

In this example, we're using the lazy function to load the MyComponent module on-demand. We're also using the Suspense component to specify a fallback UI to be rendered while the component is loading.

React Suspense, on the other hand, is a new feature that allows you to suspend rendering until a certain condition is met, such as data being loaded from an API or a dynamic import being completed. This helps to avoid showing an empty or loading state to the user, which can lead to a poor user experience.

To use React Suspense, you need to wrap your component with a Suspense component and provide a fallback UI.

Here's an example:

                    
import React, { Suspense } from 'react';

function App() {
  return (
    <div>
      <Suspense fallback={<div>Loading...</div>}>
        <MyComponent />
      </Suspense>
    </div>
  );
}
                  

In this example, we're using the Suspense component to suspend rendering until the MyComponent module has completed loading. We're also specifying a fallback UI to be rendered while the component is loading.

Overall, React Lazy and Suspense are powerful tools that can help you to improve the performance of your React applications by reducing the initial load time and avoiding showing empty or loading states to the user.

March 25, 2023

If you don't quite understand a paragraph in the lecture, just click on it and you can ask questions about it.

If you don't understand the whole question, click on the buttons below to get a new version of the explanation, practical examples, or to critique the question itself.