ReactNext
React-documentationBasics-1

1.9 Conditional Rendering

Welcome to React Next Documentation Bangla

কন্ডিশনাল রেন্ডারিং কি?

React-এ কন্ডিশনাল রেন্ডারিং হল এমন একটি প্রক্রিয়া যেখানে আমরা UI-কে শর্তের ভিত্তিতে পরিবর্তন করতে পারি। এর মাধ্যমে আমরা নির্ধারণ করতে পারি কোন কন্টেন্ট প্রদর্শিত হবে এবং কোনটি গোপন থাকবে। কন্ডিশনাল রেন্ডারিং ব্যবহার করে আমরা বিভিন্ন শর্ত অনুযায়ী ভিন্ন ভিন্ন UI উপাদান রেন্ডার করতে পারি। এই প্রক্রিয়া আমাদের অ্যাপ্লিকেশনের ইন্টারেকটিভিটি ও ব্যবহারকারীর অভিজ্ঞতা উন্নত করে।

কন্ডিশনাল রেন্ডারিংয়ের পদ্ধতিসমূহ

React-এ কন্ডিশনাল রেন্ডারিং করার কয়েকটি সাধারণ পদ্ধতি রয়েছে:

  1. if else statements
  2. Ternary Operator
  3. Logical AND Operator
  4. Logical OR Operator
  5. Nullish Coalescing Operator

১. if else statements

যদি আমাদের কন্ডিশনাল লজিক বেশ জটিল হয়, তাহলে if else statements ব্যবহার করা একটি কার্যকর পন্থা। এই পদ্ধতিতে, আমাদের JSX এর বাইরে শর্তগুলো সংজ্ঞায়িত করতে হয়।

উদাহরণ:

function Item({ name, isPacked }) {
  if (isPacked) {
    return <li className="item">{name} ✅</li>; // Packed item
  } else {
    return <li className="item">{name}</li>; // Unpacked item
  }
}
 
export default function PackingList() {
  return (
    <section>
      <h1>Sally Ride's Packing List</h1>
      <ul>
        <Item isPacked={true} name="Space suit" />
        <Item isPacked={true} name="Helmet with a golden leaf" />
        <Item isPacked={false} name="Photo of Tam" />
      </ul>
    </section>
  );
}

ব্যাখ্যা:

  • এখানে, Item কম্পোনেন্টে isPacked প্রপার্টির ভিত্তিতে আমরা ভিন্ন ভিন্ন কন্টেন্ট রেন্ডার করছি। if শর্তটি সত্য হলে একটি চিহ্নসহ কন্টেন্ট দেখানো হচ্ছে, অন্যথায় শুধুমাত্র নাম প্রদর্শিত হচ্ছে।
  • এই পদ্ধতিটি বিশেষ করে তখন উপকারী যখন আমাদের শর্তগুলি বেশ জটিল হয় এবং সেগুলি ক্লিনভাবে সংজ্ঞায়িত করতে if এবং else ব্যবহারের প্রয়োজন হয়।

২. Ternary Operator

যদি শর্তটি সরল হয় এবং আমরা শর্তের ফলাফল দুইটি ভিন্ন কন্টেন্টের মধ্যে ভাগ করতে চাই, তখন Ternary Operator ব্যবহার করে আমরা JSX এর ভিতরে কন্ডিশনাল রেন্ডারিং করতে পারি।

উদাহরণ:

function Item({ name, isPacked }) {
  return (
    <li className="item">
      {isPacked ? name + " ✅" : name} // Ternary rendering
    </li>
  );
}

ব্যাখ্যা:

  • এখানে, isPacked যদি সত্য হয়, তাহলে কন্টেন্টে চিহ্ন যুক্ত হয়ে নাম প্রদর্শিত হবে, অন্যথায় শুধুমাত্র নাম প্রদর্শিত হবে।
  • Ternary Operator ব্যবহারের সময় খেয়াল রাখতে হবে যে, এটি এক লাইনে রেন্ডারিং করার জন্য খুবই কার্যকর, তবে খুব বেশি শর্তে এটির ব্যবহার কমানো উচিত যাতে কোডটি পরিষ্কার থাকে।

৩. Logical AND Operator

যদি আমাদের শর্ত থাকে যে, যদি কন্ডিশন সত্য হয় তাহলে কিছু রেন্ডার করব, অন্যথায় কিছুই রেন্ডার করব না, তাহলে && - Logical AND Operator ব্যবহার করা যেতে পারে।

উদাহরণ:

function Item({ name, isPacked }) {
  return (
    <li className="item">
      {name} {isPacked && "✅"} // Render checkmark if packed
    </li>
  );
}

ব্যাখ্যা:

  • এখানে, যদি isPacked সত্য হয়, তাহলে "✅" রেন্ডার হবে, অন্যথায় কিছুই রেন্ডার হবে না।
  • && অপারেটরের একটি গুরুত্বপূর্ণ দিক হলো এটি কেবলমাত্র তখন রেন্ডার করে যখন এর বাম পাশে truthy মান থাকে। যদি বাম পাশের মান falsy হয়, তাহলে কিছুই রেন্ডার হবে না।

৪. Logical OR Operator

|| - Logical OR Operator ব্যবহার করেও কন্ডিশনাল রেন্ডারিং করা যায়। এটি মূলত একটি ডিফল্ট মান প্রদান করার জন্য ব্যবহার করা হয়।

উদাহরণ:

function Item({ name, isPacked }) {
  return (
    <li className="item">
      {name} {isPacked || "✅"} // Show checkmark if not packed
    </li>
  );
}

ব্যাখ্যা:

  • এখানে, isPacked যদি false হয়, তখন "✅" রেন্ডার হবে। এটি একটি ভালো পদ্ধতি যখন আমরা চান যে একটি ডিফল্ট কন্টেন্ট প্রদর্শিত হবে যখন শর্তটি সত্য নয়।
  • তবে খেয়াল রাখতে হবে যে, || ব্যবহার করার সময় falsy মানগুলোর (যেমন 0, false, "") সাথে মানসিক মিশ্রণ ঘটাতে পারে, তাই এটি ব্যবহারের সময় সাবধান থাকা উচিত।

৫. Nullish Coalescing Operator

যদি একটি ডাইনামিক ভ্যালু null অথবা undefined হয় এবং আমরা সেটার ভিত্তিতে কন্ডিশনাল রেন্ডারিং করতে চাই, তাহলে ?? - Nullish Coalescing Operator ব্যবহার করা যেতে পারে।

উদাহরণ:

function Item({ name, isPacked, data }) {
  return (
    <li className="item">
      {data ?? (
        <span>
          {name} {isPacked || "✅"}
        </span>
      )}
    </li>
  );
}

ব্যাখ্যা:

  • এখানে, data যদি null অথবা undefined হয়, তাহলে name এবং isPacked এর উপর ভিত্তি করে কন্টেন্ট রেন্ডার হবে।
  • Nullish Coalescing Operator সাধারণত ব্যবহার করা হয় যখন আমরা নিশ্চিত হতে চাই যে একটি পরিবর্তনশীল কেবল তখন রেন্ডার হবে যখন এটি প্রকৃতপক্ষে কোনো মান ধারণ করছে।

উপসংহার

React-এ কন্ডিশনাল রেন্ডারিং একটি গুরুত্বপূর্ণ প্রক্রিয়া যা UI-কে ডাইনামিক ও ইন্টারেকটিভ করার সুযোগ দেয়। বিভিন্ন পদ্ধতি ব্যবহার করে, আমরা শর্তগুলির ভিত্তিতে কন্টেন্ট রেন্ডার করতে পারি। সঠিক কন্ডিশনাল রেন্ডারিং পদ্ধতি নির্বাচন করে এবং শর্তগুলোকে কার্যকরভাবে ব্যবহার করে আমরা ব্যবহারকারীর অভিজ্ঞতাকে উন্নত করতে পারি।

সেরা অভ্যাস

  • কন্ডিশনাল লজিক যতটা সম্ভব সহজ এবং পরিষ্কার রাখুন।
  • কোডের পুনরাবৃত্তি কমাতে চেষ্টা করুন।
  • কমপ্লেক্স কন্ডিশনাল লজিকের জন্য if-else ব্লক ব্যবহার করুন।
  • Ternary Operator এবং && অপারেটর ব্যবহার করার সময় কোডের পাঠযোগ্যতা বজায় রাখতে সতর্ক থাকুন।
  • ডিফল্ট ভ্যালু প্রদানের জন্য ?? এবং || ব্যবহার করার সময় স্পষ্টভাবে জানুন যে আপনার কন্ডিশনাল লজিকের ফলাফল কী হবে।

On this page