CodShot
TSX Public

Lazy Component Loading with Suspense

Load a large component only when it is rendered and show a fallback during download.

#react #suspense #lazy-loading #performance
TSX
'use client';

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

const AnalyticsChart = lazy(
  () => import('./analytics-chart'),
);

export function AnalyticsPanel() {
  const [isOpen, setIsOpen] = useState(false);

  return (
    <section>
      <button
        type="button"
        onClick={() => setIsOpen((current) => !current)}
      >
        {isOpen ? 'Hide analytics' : 'Show analytics'}
      </button>

      {isOpen && (
        <Suspense fallback={<p>Loading chart…</p>}>
          <AnalyticsChart />
        </Suspense>
      )}
    </section>
  );
}

Snippet actions

CodShot user
CodShot user
Updated: 2026-08-06 18:36
Public snippets
0
Forks
CodShot AI Help
Ask about CodShot features, plans, workspace, AI limits, referrals, and public help topics.
Hi! I can help you understand how CodShot works. What would you like to know?
For account-specific or sensitive issues, please open a support ticket. Open support