Tech TutorBangla Web Documentation
Portfolio
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Next.js Documentation27টি অধ্যায়
প্রযুক্তি নির্বাচন
HomeHTMLCSSTailwind CSSJavaScriptTypeScriptReactNext.jsNode.jsExpressSocket.IOExpoWordPressPostgreSQLPrismaPostgresNestJSMongoDBDockerTanStackTanStack TableRTK QueryGitGitHub
  • Introduction
  • কেন Next.js?
  • Installation
  • Project Structure
  • Routing ও Pages
  • Layouts
  • Linking ও Navigation
  • Server & Client Components
  • Dynamic Routes
  • Data Fetching
  • Loading ও Streaming
  • Error Handling
  • Route Handlers
  • Server Actions
  • Caching ও Revalidation
  • Metadata ও SEO
  • Images ও Fonts
  • Styling
  • Environment Variables
  • Development ও Production
  • Deployment
  • Configuration
  • Static ও Dynamic Rendering
  • Proxy
  • Performance
  • Project: Blog
  • Project: Dashboard
  1. Docs
  2. Next.js
  3. Loading UI ও Streaming
Next.jsIntermediate

Loading UI ও Streaming

loading.tsx ও Suspense দিয়ে progressive rendering — streaming বাংলায়।

11টি অংশবাংলা ভাষায়

Slow data fetch-এর কারণে পুরো page block হয়ে থাকা ঠিক নয়। Streaming দিয়ে page-এর কিছু অংশ আগে, কিছু অংশ পরে পাঠানো যায় (progressive rendering)।

loading.tsx

route segment-এ loading.tsx ফাইল যোগ করলে Next.js স্বয়ংক্রিয়ভাবে page-কে <Suspense>-এ মোড়ায় — fetch চলাকালীন loading UI দেখায়।

app/blog/loading.tsxtsx
tsx
export default function Loading() {
  return (
    <div className="animate-pulse space-y-4 p-4">
      <div className="h-8 rounded bg-gray-200" />
      <div className="h-8 rounded bg-gray-200" />
      <div className="h-8 rounded bg-gray-200" />
    </div>
  );
}

Suspense

<Suspense> দিয়ে page-এর নির্দিষ্ট অংশ আলাদা ভাবে stream করা যায় — বাকিটা সাথে সাথে show হয়।

app/blog/page.tsxtsx
tsx
import { Suspense } from "react";
import BlogList from "../components/blog-list";
import BlogListSkeleton from "../components/blog-list-skeleton";

export default function BlogPage() {
  return (
    <div>
      <header>
        <h1>Welcome to the Blog</h1>
      </header>
      <main>
        <Suspense fallback={<BlogListSkeleton />}>
          <BlogList />
        </Suspense>
      </main>
    </div>
  );
}

এখানে header সাথে সাথে আসে, আর BlogList-এর data ready হলে stream হয়।

Meaningful Loading States

  • Skeleton — ভবিষ্যৎ UI-এর আভাস, best practice
  • Spinner — কিছু process চলছে বোঝায়
  • Priority Content — cover photo, title ইত্যাদি আগে
Loading-এ কী করবেন না

Text-only “Loading...” ফাঁকা-ফোঁকা মনে হয়। Skeleton বা page-এর গুরুত্বপূর্ণ অংশ আগে দেখান।

শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।
আগেরData FetchingপরেরError Handling
এই পেজে
Tech Tutor

বাংলায় ওয়েব ডেভেলপমেন্ট ডকুমেন্টেশন শিখুন — ধাপে ধাপে।

Homeসব ডকুমেন্টেশনQuick Startআমার নোটস

© 2026 Tech Tutor. বাংলায় শিখুন, বাংলায় গড়ুন।

mdanamolhasan1998@gmail.com