**রিঅ্যাক্ট** (এছাড়াও React.js বা ReactJS নামে পরিচিত) হল একটি বিনামূল্যের এবং ওপেন-সোর্স ফ্রন্ট-এন্ড জাভাস্ক্রিপ্ট লাইব্রেরি।  যাতে UI উপাদানের উপর ভিত্তি করে ইউজার ইন্টারফেস তৈরি করা যায়। এটি মেটা (পূর্বে ফেসবুক) এবং স্বতন্ত্র বিকাশকারী এবং কোম্পানিগুলির একটি সম্প্রদায় দ্বারা রক্ষণাবেক্ষণ করা হয়।  একক-পৃষ্ঠা, মোবাইল, বা Next.js-এর মতো ফ্রেমওয়ার্ক সহ সার্ভার-রেন্ডার করা অ্যাপ্লিকেশনগুলির বিকাশে প্রতিক্রিয়া একটি ভিত্তি হিসাবে ব্যবহার করা যেতে পারে। যাইহোক, রিঅ্যাক্ট শুধুমাত্র স্টেট ম্যানেজমেন্ট এবং সেই স্টেটকে DOM-এ রেন্ডার করার সাথে সম্পর্কিত, তাই রিঅ্যাক্ট অ্যাপ্লিকেশন তৈরি করার জন্য সাধারণত রাউটিং এর জন্য অতিরিক্ত লাইব্রেরি, সেইসাথে নির্দিষ্ট ক্লায়েন্ট-সাইড কার্যকারিতা ব্যবহার করা প্রয়োজন। 

ভার্চুয়াল DOM
আরেকটি উল্লেখযোগ্য বৈশিষ্ট্য হল ভার্চুয়াল ডকুমেন্ট অবজেক্ট মডেল বা ভার্চুয়াল DOM ব্যবহার করা। প্রতিক্রিয়া একটি ইন-মেমরি ডেটা-স্ট্রাকচার ক্যাশে তৈরি করে, ফলাফলের পার্থক্যগুলি গণনা করে এবং তারপর ব্রাউজারের প্রদর্শিত DOM দক্ষতার সাথে আপডেট করে। এই প্রক্রিয়াটিকে পুনর্মিলন বলা হয়। এটি প্রোগ্রামারকে এমনভাবে কোড লিখতে দেয় যেন প্রতিটি পরিবর্তনে পুরো পৃষ্ঠাটি রেন্ডার করা হয়, যখন রিঅ্যাক্ট লাইব্রেরিগুলি কেবলমাত্র এমন সাবকম্পোনেন্ট রেন্ডার করে যা আসলে পরিবর্তিত হয়। এই নির্বাচনী রেন্ডারিং একটি প্রধান কর্মক্ষমতা বুস্ট প্রদান করে। এটি সিএসএস শৈলী, পৃষ্ঠার বিন্যাস এবং সমগ্র পৃষ্ঠার জন্য রেন্ডারিং পুনঃগণনা করার প্রচেষ্টাকে বাঁচায়।[11]

জীবনচক্র পদ্ধতি
ক্লাস-ভিত্তিক উপাদানগুলির জন্য জীবনচক্র পদ্ধতিগুলি হুকিংয়ের একটি ফর্ম ব্যবহার করে যা একটি উপাদানের জীবদ্দশায় সেট পয়েন্টগুলিতে কোড কার্যকর করার অনুমতি দেয়।

shouldComponentUpdate ডেভেলপারকে কোনো রেন্ডারের প্রয়োজন না হলে মিথ্যা ফেরত দিয়ে কোনো কম্পোনেন্টের অপ্রয়োজনীয় রি-রেন্ডারিং প্রতিরোধ করতে দেয়।
componentDidMount বলা হয় একবার কম্পোনেন্ট "মাউন্ট" হয়ে গেলে (কম্পোনেন্টটি ইউজার ইন্টারফেসে তৈরি করা হয়েছে, প্রায়শই এটিকে একটি DOM নোডের সাথে যুক্ত করে)। এটি সাধারণত একটি API এর মাধ্যমে দূরবর্তী উত্স থেকে ডেটা লোডিং ট্রিগার করতে ব্যবহৃত হয়।
componentWillUnmount কে অবিলম্বে কম্পোনেন্ট ছিঁড়ে ফেলা বা "আনমাউন্ট করা" বলা হয়। এটি সাধারণত কম্পোনেন্টের উপর রিসোর্স-ডিমান্ডিং নির্ভরতা সাফ করতে ব্যবহৃত হয় যা কম্পোনেন্টের আনমাউন্ট করার মাধ্যমে সরানো হবে না (যেমন, কম্পোনেন্টের সাথে সম্পর্কিত যেকোন সেটইন্টারভাল() ইনস্ট্যান্স অপসারণ করা, অথবা একটি "ইভেন্টলিসনার" সেট করা "নথি" উপাদান উপস্থিতির কারণে)
রেন্ডার হল সবচেয়ে গুরুত্বপূর্ণ লাইফ সাইকেল পদ্ধতি এবং যেকোন উপাদানে একমাত্র প্রয়োজনীয়। এটি সাধারণত প্রতিবার কম্পোনেন্টের অবস্থা আপডেট করার সময় বলা হয়, যা ব্যবহারকারীর ইন্টারফেসে প্রতিফলিত হওয়া উচিত।

জেএসএক্স
মূল নিবন্ধ: JSX

JSX, বা জাভাস্ক্রিপ্ট সিনট্যাক্স এক্সটেনশন হল জাভাস্ক্রিপ্ট ভাষার সিনট্যাক্সের একটি এক্সটেনশন। জাভাস্ক্রিপ্ট এর মাধ্যমে রিয়্যাক্ট এলিমেন্ট তৈরি করা ও রেন্ডার করা ডেভেলপারদের কাছে বেশ শ্রমসাধ্য মনে হওয়ায় JSX এর উদ্ভব যা দেখতে HTML সাদৃশ্য। HTML এবং JSX দেখতে অনেকটা একই রকম হলেও এদের মধ্যে বেশ কিছু পার্থক্য রয়েছে যেমন HTML এর class কে JSX এ className লেখা হয়। প্রতিক্রিয়া উপাদানগুলি সাধারণত JSX ব্যবহার করে লেখা হয়, যদিও সেগুলি হতে হবে না (উপাদানগুলি বিশুদ্ধ জাভাস্ক্রিপ্টেও লেখা হতে পারে)। JSX হল XHP নামক PHP-এর জন্য Facebook দ্বারা তৈরি আরেকটি এক্সটেনশন সিনট্যাক্সের অনুরূপ।

তথ্যসূত্র
---------

1. ↑  Occhino, Tom; Walke, Jordan। "JS Apps at Facebook"। *YouTube*। সংগ্রহের তারিখ ২২ অক্টো ২০১৮। উদ্ধৃতি টেমপ্লেট ইংরেজি প্যারামিটার ব্যবহার করেছে (link)
2. ↑  "18.2.0 (June 14, 2022)"। সংগ্রহের তারিখ ২৩ জুন ২০২২। উদ্ধৃতি টেমপ্লেট ইংরেজি প্যারামিটার ব্যবহার করেছে (link)
3. ↑  "React - A JavaScript library for building user interfaces."। *React*। সংগ্রহের তারিখ ৭ এপ্রিল ২০১৮। উদ্ধৃতি টেমপ্লেট ইংরেজি প্যারামিটার ব্যবহার করেছে (link)
4. ↑  Krill, Paul (মে ১৫, ২০১৪)। "React: Making faster, smoother UIs for data-driven Web apps"। *InfoWorld*। উদ্ধৃতি টেমপ্লেট ইংরেজি প্যারামিটার ব্যবহার করেছে (link)
5. ↑  Hemel, Zef (জুন ৩, ২০১৩)। "Facebook's React JavaScript User Interfaces Library Receives Mixed Reviews"। *InfoQ*। উদ্ধৃতি টেমপ্লেট ইংরেজি প্যারামিটার ব্যবহার করেছে (link)
6. ↑  Dawson, Chris (জুলাই ২৫, ২০১৪)। "JavaScript's History and How it Led To ReactJS"। *The New Stack*। উদ্ধৃতি টেমপ্লেট ইংরেজি প্যারামিটার ব্যবহার করেছে (link)
7. ↑  Dere, Mohan (২০১৮-০২-১৯)। "How to integrate create-react-app with all the libraries you need to make a great app"। *freeCodeCamp*। সংগ্রহের তারিখ ২০১৮-০৬-১৪। উদ্ধৃতি টেমপ্লেট ইংরেজি প্যারামিটার ব্যবহার করেছে (link)