🌐 Detecting your location…
📢 Advertisement — Configure AdSense in Appearance → Customize → AdSense Settings

প্রতিক্রিয়া 19 নতুন বৈশিষ্ট্য: কম্পাইলার, সার্ভার উপাদান এবং ক্রিয়া ব্যাখ্যা করা হয়েছে

⏱️2 min read  ·  362 words
React 19 New Features: Compiler, Server Components and Actions Explained

প্রতিক্রিয়া 19, 2024 সালের শেষের দিকে প্রকাশিত এবং 2025-2026 পর্যন্ত ব্যাপকভাবে গৃহীত, হুকগুলির পর থেকে সবচেয়ে উল্লেখযোগ্য পরিবর্তন এনেছে। নতুন কম্পাইলার, সার্ভার কম্পোনেন্টস, অ্যাকশন এবং সরলীকৃত প্রসঙ্গ কীভাবে রিঅ্যাক্ট অ্যাপ তৈরি করা হয় তা পুনর্নির্মাণ করছে।

রিঅ্যাক্ট কম্পাইলার — আর কোন মেমো/ইউজকলব্যাক ব্যবহার করবেন না

প্রতিক্রিয়া কম্পাইলার স্বয়ংক্রিয়ভাবে উপাদান এবং মান স্মরণ করে। সর্বাধিক সরানuseMemo,useCallback, এবংmemo()কল

// React 18: Manual memoization
const ExpensiveComponent = memo(({ data }) => {
  const processed = useMemo(() => processData(data), [data]);
  const handleClick = useCallback(() => onClick(data), [data, onClick]);
  return <div onClick={handleClick}>{processed}</div>;
});

// React 19: Compiler handles it automatically
function ExpensiveComponent({ data }) {
  const processed = processData(data);
  return <div onClick={() => onClick(data)}>{processed}</div>;
}

সার্ভার উপাদান

সার্ভার কম্পোনেন্ট সার্ভারে চলে, ডাটাবেস সরাসরি অ্যাক্সেস করে এবং ক্লায়েন্টকে শূন্য জাভাস্ক্রিপ্ট পাঠায়। Next.js 14+ এ ডিফল্ট।

// app/users/page.tsx — runs on server, no JS sent to client
import { db } from '@/lib/db';

export default async function UsersPage() {
  const users = await db.query('SELECT * FROM users LIMIT 10');
  return (
    <ul>
      {users.map(u => <li key={u.id}>{u.name}</li>)}
    </ul>
  );
}

অ্যাকশন — সার্ভার এবং ক্লায়েন্ট

অ্যাকশন পুরানো ইভেন্ট হ্যান্ডলার + আনয়ন প্যাটার্ন প্রতিস্থাপন করে। মুলতুবি থাকা অবস্থা, ত্রুটি, এবং আশাবাদী আপডেটগুলি স্বয়ংক্রিয়ভাবে পরিচালনা করুন।

async function createUser(formData: FormData) {
  'use server';
  const name = formData.get('name') as string;
  await db.insert('users', { name });
  revalidatePath('/users');
}

export default function CreateUserForm() {
  return (
    <form action={createUser}>
      <input name="name" placeholder="Name" />
      <button type="submit">Create</button>
    </form>
  );
}

অ্যাকশনস্টেট হুক ব্যবহার করুন

ট্র্যাক মুলতুবি, ত্রুটি, এবং সফল অবস্থা স্বয়ংক্রিয়ভাবে. verbose useState + ম্যানুয়াল ফর্ম হ্যান্ডলিং প্রতিস্থাপন করে।

import { useActionState } from 'react';

async function signUp(prevState, formData) {
  const email = formData.get('email');
  try {
    await createAccount(email);
    return { success: true };
  } catch (e) {
    return { error: e.message };
  }
}

function SignUpForm() {
  const [state, action, isPending] = useActionState(signUp, null);
  return (
    <form action={action}>
      <input name="email" type="email" />
      {state?.error && <p className="error">{state.error}</p>}
      {state?.success && <p>Account created!</p>}
      <button disabled={isPending}>
        {isPending ? 'Creating...' : 'Sign Up'}
      </button>
    </form>
  );
}

use() হুক — উপাদানগুলিতে অ্যাসিঙ্ক

প্রতিশ্রুতি এবং প্রসঙ্গ ইনলাইনে পড়ুন। আর নেইuseEffectক্লায়েন্ট উপাদানগুলিতে ডেটা আনার জন্য।

import { use, Suspense } from 'react';

async function fetchUser(id) {
  const res = await fetch(`/api/users/${id}`);
  return res.json();
}

function UserCard({ userPromise }) {
  const user = use(userPromise);  // Suspense-aware
  return <div>{user.name}</div>;
}

// In parent:
<Suspense fallback={<Skeleton />}>
  <UserCard userPromise={fetchUser(userId)} />
</Suspense>

সরলীকৃত প্রসঙ্গ

প্রসঙ্গ প্রদানকারীরা এখন ব্যবহার করে<Context>সরাসরি — আর নয়.Provider.

const ThemeContext = createContext('light');

// React 19: Direct
function App() {
  return (
    <ThemeContext value="dark">
      <Page />
    </ThemeContext>
  );
}

// React 18: Required .Provider
function App() {
  return (
    <ThemeContext.Provider value="dark">
      <Page />
    </ThemeContext.Provider>
  );
}

উপসংহার

প্রতিক্রিয়া 19 এখনও পর্যন্ত সবচেয়ে বিকাশকারী-বান্ধব সংস্করণ। কম্পাইলার পারফরম্যান্স বয়লারপ্লেট বাদ দেয়, সার্ভার উপাদানগুলি বান্ডিলের আকার হ্রাস করে এবং অ্যাকশনগুলি ফর্ম পরিচালনাকে সহজ করে। আপনি এখনও প্রতিক্রিয়া 17 বা 18 এ থাকলে, এখনই আপগ্রেড করুন।

✍️ Leave a Comment

Your email address will not be published. Required fields are marked *

🌐 Read in:🇬🇧 English🇩🇪 Deutsch🇧🇷 Português🇸🇦 العربية🇮🇳 हिन्दी🇧🇩 বাংলা