1️⃣ Course Introduction

স্বাগতম! React JS Bangla Tutorial-এ

এই React JS Bangla Course-টি আমরা React-এর অফিসিয়াল ডকুমেন্টেশন অনুসরণ করে তৈরি করেছি। আমাদের বিশ্বাস, এই কোর্সটি আপনাকে একজন দক্ষ React JS ডেভেলপার হিসেবে গড়ে তুলবে।

আমরা আপনাকে একদম সহজ বাংলায়, গল্পের মতো করে ধাপে ধাপে React শিখিয়ে দেবো, যেন আপনি হাতে-কলমে কোড করে একজন আত্মবিশ্বাসী ফ্রন্টএন্ড React JS ডেভেলপার হয়ে উঠতে পারেন। এই কোর্সটি শেষ করলে, আশা করি, React-এর কোনো ধারণা নিয়েই আপনার আর কোনো সংশয় থাকবে না।

We as software engineers are paid for solving business problems, and not for writing code. Code is just a tool to solve these problems. - Anton Martyniuk

আমাদের লক্ষ্য কমপক্ষে ৫০০০ ডেভেলপার তৈরি করা— যারা React-এর মূল ধারণাগুলো গভীরভাবে বুঝে, নিজেরা নতুন অ্যাপ তৈরি করতে সক্ষম হবেন।

প্রোগ্রামিং এমন একটি জগৎ, যেখানে শেখার কোনো শেষ নেই। দুনিয়ায় যত ক্যালকুলেটর, ই-কমার্স সাইট বা টাস্ক ম্যানেজমেন্ট অ্যাপই থাকুক না কেন — নতুন নতুন চাহিদা আসবেই, নতুন ফিচারের দরকার হবেই। আপনি যদি কোড শেখেন, তবে সেই নতুনত্ব নিয়েই কাজ করার সুযোগ পাবেন।

🎧 React পরিচিতি
👉 সময় কম অডিও ফাইলটি শুনুন 🚀

চলুন React-এর সাথে প্রথম পরিচয় পর্ব শুরু করা যাক।


সফলতার মূলমন্ত্র: শুধু দেখুন না, কোড করুন

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

প্রাকটিসই হলো আসল শিক্ষা। ভুল করুন, আবার শিখুন এবং বারবার চেষ্টা চালিয়ে যান। আমার মনে পড়ে, প্রথম কয়েকবার সাইকেল থেকে পড়ে যাওয়ার পর মনে হয়েছিল, "আমি বোধহয় শিখে গেছি।" এরপর মাটি থেকে উঠে আত্মবিশ্বাসের সাথে চালিয়েছিলাম! এই টিউটোরিয়ালে আমরা শুধু থিওরি নয়, বাস্তব কোডের উদাহরণও দেখাবো। আপনার কাজ শুধু একটাই: হাল না ছাড়া। আটকে গেলে ভয় পাবেন না, কারণ আমরা সবাই একসাথেই শিখছি।


এই কোর্সটি কাদের জন্য?

  • যারা একদম নতুন এবং React শিখতে চান, এমনকি React-এর 'R'-ও জানেন না。
  • যারা আগে React শুরু করে মাঝপথে হাল ছেড়ে দিয়েছিলেন。
  • যারা অফিসিয়াল ডকুমেন্টেশন পড়তে গিয়ে ইংরেজিতে স্বচ্ছন্দ নন।

এই কোর্স থেকে কী শিখবেন?

  • React কী এবং কেন এটি এত জনপ্রিয়?
  • ছোট ছোট Component দিয়ে কীভাবে গোছানো UI তৈরি করা যায়?
  • JSX কী এবং কেন এটি HTML-এর চেয়েও শক্তিশালী?
  • State, Props, Event এবং Hooks ব্যবহার করে কীভাবে Interactive UI বানাতে হয়?
  • বাস্তবভিত্তিক ছোট প্রজেক্ট তৈরি。
  • React Native ও Next.js সম্পর্কে ধারণা。
  • Vanilla JS বনাম React-এর মধ্যে পরিষ্কার পার্থক্য।

React.js-এর সংক্ষিপ্ত ইতিহাস

২০১১ সালে ফেসবুকের Jordan Walke React তৈরি করেন। তিনি PHP-এর কম্পোনেন্ট-ভিত্তিক ফ্রেমওয়ার্ক "XHP" থেকে অনুপ্রাণিত হয়ে এটি ডেভেলপ করেন। React প্রথম ফেসবুকের নিউজফিডে এবং পরে ২০১২ সালে ইনস্টাগ্রামে ব্যবহৃত হয়।

২০১৩ সালে ফেসবুক React.js-কে ওপেন-সোর্স হিসেবে প্রকাশ করে। এরপর থেকে এটি দ্রুত ডেভেলপার কমিউনিটিতে জনপ্রিয়তা লাভ করে।


রিয়্যাক্ট কী? (What is React?)

React হলো ইউজার ইন্টারফেস (UI) তৈরির জন্য একটি JavaScript লাইব্রেরি। UI হলো ব্যবহারকারী যা ব্রাউজারে দেখেন এবং যার সাথে ইন্টারঅ্যাক্ট করেন।

যেমন: Facebook NewsFeed, ইউটিউবের ভিডিও তালিকা বা যেকোনো ইনপুট ফর্ম — এই সবই UI-এর অংশ।

React দিয়ে ওয়েব, মোবাইল—সব প্ল্যাটফর্মের জন্যই অ্যাপ্লিকেশন তৈরি করা যায়।


React-এর মূল ধারণাসমূহ

১। কম্পোনেন্ট-ভিত্তিক আর্কিটেকচার

React-এ আমরা পুরো ওয়েবসাইট একবারে তৈরি করি না। React-এর দর্শন হলো: "পুরো জিনিস একসাথে না বানিয়ে, ছোট ছোট অংশে ভাগ করে বানাও।" এই প্রতিটি ছোট অংশকে বলা হয় Component

কম্পোনেন্ট-ভিত্তিক কাজের সবচেয়ে বড় সুবিধা হলো, কোড গোছানো থাকে এবং টিমের সাথে কাজ করা সহজ হয়। দলের প্রত্যেকে নিজের কম্পোনেন্ট নিয়ে কাজ করতে পারে।

ধরুন, আপনি YouTube-এর মতো একটি পেজ বানাচ্ছেন। সেখানে থাকতে পারে:

  • <Thumbnail /> — ভিডিওর থাম্বনেল
  • <LikeButton /> — লাইক বাটন
  • <Video /> — সম্পূর্ণ ভিডিও ব্লক
  • <Comment /> — কমেন্ট সেকশন

এই ছোট ছোট Component গুলোকে একসাথে জুড়ে দিয়ে একটি পূর্ণাঙ্গ অ্যাপ্লিকেশন তৈরি করা যায়।

// Video.js
function Video({ video }) {
  return (
    <div>
      <VideoThumbnail image={video.thumbnail} />
      <a href={video.url}>
        <VideoTitle title={video.title} />
        <p>{video.description}</p>
      </a>
      <LikeButton />
    </div>
  );
}

🎬 শেখার জন্য ডকুমেন্টেশন কেন - তাপস ভাই?
🚀 মাতৃভাষায় React ও Next JS শেখার সেরা কোর্স- Learn With Sumit রিয়্যাক্টিভ এক্সিলারেটর কোর্স। কোর্সটির এনরোলমেন্ট শুরু হবে এই মাসের ২য় সপ্তাহে।

২। JSX: জাভাস্ক্রিপ্টের সুপারপাওয়ার

React কম্পোনেন্ট মূলত একটি জাভাস্ক্রিপ্ট ফাংশন, যা JSX রিটার্ন করে। JSX দেখতে HTML-এর মতো হলেও এর ভেতরে JavaScript-এর সমস্ত শক্তি রয়েছে।

const heading = "স্বাগতম!";
return <h1>{heading}</h1>;

এখানে {heading} একটি JavaScript expression এবং <h1> একটি JSX ট্যাগ।

React এই JSX কোডকে সাধারণ জাভাস্ক্রিপ্টে রূপান্তর করে, যা ব্রাউজার বুঝতে পারে。

পর্দার আড়ালে, উপরের JSX কোডটি নিচের মতো কোডে রূপান্তরিত হয়:

React.createElement("h1", null, "স্বাগতম!");

JSX ব্যবহারের মূল কারণ হলো কোডকে পরিষ্কার, সহজে বোধগম্য এবং রক্ষণাবেক্ষণযোগ্য রাখা।


ব্যাপারটা হলো, JSX আপনাকে HTML-এর ভেতরেই জাভাস্ক্রিপ্ট লেখার ক্ষমতা দেয়। এর ফলে ডিজাইন (মার্কআপ) এবং লজিক (জাভাস্ক্রিপ্ট) এক জায়গায় থাকে, যা কোড ম্যানেজমেন্টকে অনেক সহজ করে তোলে।

উদাহরণ:

// VideoList.js
function VideoList({ videos, emptyHeading }) {
  const count = videos.length;
  let heading = emptyHeading;
 
  if (count > 0) {
    const noun = count > 1 ? "টি ভিডিও" : "টি ভিডিও";
    heading = count + " " + noun;
  }
 
  return (
    <section>
      <h1>{heading}</h1>
      {/* এখানে .map() ব্যবহার করে প্রতিটি ভিডিওর জন্য একটি কম্পোনেন্ট দেখানো হচ্ছে */}
      {videos.map((video) => (
        <Video key={video.id} video={video} />
      ))}
    </section>
  );
}

প্রশ্ন: <Welcome/> কম্পোনেন্টের <h1> ট্যাগটি কি আসল HTML?


৩। ডাইনামিক ও ইন্টারঅ্যাকটিভ UI

নিচের উদাহরণে, আপনি যখন সার্চ বক্সে কিছু টাইপ করবেন, React তাৎক্ষণিকভাবে ভিডিও তালিকা থেকে ফিল্টার করে ফলাফল দেখাবে।

নোট: নিচের কোডটি এখন পুরোপুরি বোঝার দরকার নেই। শুধু একবার চোখ বুলিয়ে নিন, কীভাবে একটি ইন্টারঅ্যাকটিভ তালিকা তৈরি করা যায়।

// SearchableVideoList.js
 
// ... (এখানে ভিডিওর ডেটা এবং অন্যান্য কম্পোনেন্ট থাকবে) ...
 
function SearchableVideoList({ videos }) {
  const [searchText, setSearchText] = useState("");
  const foundVideos = filterVideos(videos, searchText); // ফিল্টার করা ভিডিও
 
  return (
    <>
      <SearchInput value={searchText} onChange={setSearchText} />
      <VideoList
        videos={foundVideos}
        emptyHeading={`"${searchText}" দিয়ে কিছু পাওয়া যায়নি`}
      />
    </>
  );
}

ব্যাস, UI এখন আপনার ইনপুটের উপর ভিত্তি করে রিয়েল-টাইমে সাড়া দেবে।


৪। Next.js: ফুল-স্ট্যাক অ্যাপের শক্তি

React শুধু UI তৈরির কাজে ব্যবহৃত হয়। কিন্তু একটি বড় অ্যাপ্লিকেশনে রাউটিং, সার্ভার থেকে ডেটা আনা, SEO ইত্যাদি অনেক কিছুর প্রয়োজন হয়।

এই কাজগুলো সহজ করতে আমরা Next.js ব্যবহার করতে পারি, যা React-এর উপর ভিত্তি করে তৈরি একটি শক্তিশালী ফ্রেমওয়ার্ক। এতে SSR (Server-Side Rendering), API Routes, Image Optimization-এর মতো ফিচার বিল্ট-ইন থাকে।


৫। React Native: এক কোডে সব প্ল্যাটফর্মে

React Native ব্যবহার করে আপনি Android ও iOS-এর জন্য নেটিভ অ্যাপ তৈরি করতে পারবেন। Expo ব্যবহার করলে এই প্রক্রিয়া আরও সহজ হয়ে যায়।

এর মানে, একই স্কিল ব্যবহার করে আপনি ওয়েব এবং মোবাইল—দুই প্ল্যাটফর্মেই কাজ করতে পারবেন! 🚀


🔹 কমিউনিটির সাথে শিখুন

প্রতি মাসে প্রায় ২০ লাখ ডেভেলপার React ডকুমেন্টেশন পড়ে। কেউ শেখে, কেউ শেখায়।

আপনি GitHub, StackOverflow, Discord, Reddit, YouTube, এমনকি Facebook Group-এও কমিউনিটির সাথে যুক্ত হয়ে শিখতে পারেন।


৬। পুরোনো প্রজেক্টে React যুক্ত করুন

React শেখার জন্য আপনাকে নতুন করে অ্যাপ বানাতে হবে, এমন কোনো কথা নেই। আপনি চাইলে আপনার পুরোনো ওয়েবসাইটেও একটি নির্দিষ্ট অংশে React কম্পোনেন্ট যুক্ত করতে পারেন:

<!-- আপনার পুরোনো HTML ফাইলের একটি অংশ -->
<nav id="navigation"></nav>
// একটি নতুন JS ফাইলে React কোড
import { createRoot } from "react-dom/client";
 
function NavigationBar() {
  return <h1>Hello from React!</h1>;
}
 
const domNode = document.getElementById("navigation");
const root = createRoot(domNode);
root.render(<NavigationBar />);

🔹 এক নজরে React-এর মূল ফিচারসমূহ

  • Component-based Structure — কোডকে ছোট ছোট ইউনিটে ভাগ করা。
  • Virtual DOM — দ্রুত UI আপডেট এবং উন্নত পারফরম্যান্স。
  • 🎯 Declarative UI — কী দেখাতে চান, শুধু তা বলে দিন; React বাকিটা সামলে নেবে。
  • 🔄 State & Props — কম্পোনেন্টে ডেটা ম্যানেজমেন্টের জন্য শক্তিশালী ব্যবস্থা。
  • 🔌 Hooks — ফাংশনাল কম্পোনেন্টে স্টেট এবং লাইফসাইকেল ফিচার ব্যবহারের সুযোগ।

🔹 কখন কোনটি ব্যবহার করবেন: Vanilla JS vs React

ফিচার/প্রয়োজনVanilla JSReact
ছোট ও স্ট্যাটিক সাইট✔️❌ (Overkill)
বড় ও জটিল অ্যাপ✔️
ডায়নামিক ও ইন্টারঅ্যাকটিভ UI❌ (জটিল)✔️ (সহজ)
কোড পুনর্ব্যবহার (Reusable)✔️
পারফরম্যান্স অপটিমাইজেশন❌ (ম্যানুয়াল)✔️ (Virtual DOM)

📘 React JS Bangla Tutorial Introduction
⬇️ Download PDF
👉 টিউটোরিয়ালটি PDF আকারে ডাউনলোড করে পড়ুন 🚀

শেষ কথা

Vanilla JS হলো ভিত্তি, আর React হলো সেই ভিত্তির উপর নির্মিত একটি শক্তিশালী টুল। ছোটখাটো কাজের জন্য Vanilla JS যথেষ্ট, কিন্তু বড়, আধুনিক এবং পারফরম্যান্ট অ্যাপ তৈরির জন্য React আপনার কাজকে অনেক সহজ, দ্রুত এবং আনন্দদায়ক করে তুলবে।

📚 রিসোর্সসমূহ


React শেখা একদিনের যাত্রা নয়, কিন্তু শুরুটা হোক আজই।


চলুন একসাথে কাজ করি!

আপনি যদি কোনো React বা Frontend প্রজেক্টে কাজ করাতে চান, কিংবা শেখার ব্যাপারে সহযোগিতা চান, আমার সঙ্গে যোগাযোগ করুন।


© 2024 - 2025 React JS Bangla Tutorial.