1.6 About JSX
Welcome to React Next Documentation Bangla
JSX কি?
JSX হলো জাভাস্ক্রিপ্টের একটি সিনট্যাক্স এক্সটেনশন, যা আমাদেরকে HTML এর মতো মার্কাপ লিখতে সাহায্য করে। যখন তুমি JSX ব্যবহার করো, তখন একই জায়গায় (কম্পোনেন্টের ভিতর) জাভাস্ক্রিপ্টের লজিক এবং HTML এর মার্কাপ একসাথে লিখতে পারো। এর ফলে, যদি কখনো কিছু পরিবর্তন করতে হয়, তাহলে তোমার কাছে বেশিরভাগ সময় বেশি ফ্লেক্সিবিলিটি থাকে।
JSX দেখতে একদম HTML এর মতো মনে হলেও, এটি আসলে HTML নয়; বরং এটি অনেক বেশি Strict। যদি JSX এ কোথাও ভুল হয়, তবে তা সাথে সাথে Error দিয়ে জানিয়ে দেয়।
HTML এর মতো, JSX তে আমরা শুধুমাত্র স্ট্যাটিক কন্টেন্ট লিখতে পারি না; বরং আমরা ডাইনামিক ভ্যালু ব্যবহার করতে পারি।
JSX লিখার রুলসগুলো কি কি?
JSX লিখতে গেলে কিছু নিয়ম মেনে চলতে হয়। চলুন দেখি সেগুলো কী কী:
1. Return a Single Root Element
JSX কে অবশ্যই একটি সিঙ্গেল রুট এলিমেন্ট রিটার্ন করতে হবে। যদি একাধিক এলিমেন্ট রিটার্ন করতে হয়, তাহলে একটি প্যারেন্ট এলিমেন্ট দিয়ে wrap করতে হবে। সাধারণত <div> ব্যবহার করা হয়, যদিও কখনো কখনো এটি অপ্রয়োজনীয় হতে পারে।
❌ ভুল উদাহরণ
✅ সঠিক উদাহরণ
যদি অতিরিক্ত <div> এলিমেন্ট রেন্ডার করতে না চান, তাহলে Fragment ব্যবহার করতে পারো:
কেন আমাদের একটি মূল JSX রিটার্ন করতে হয়?
যেকোন প্রোগ্রামিং ভাষায় একটি ফাংশন থেকে কেবল একটি ডেটা টাইপ/স্ট্রাকচার রিটার্ন করা যায়। যেমন:
এখন, JSX এর ক্ষেত্রে:
কিন্তু আমরা একটি Array এর ভিতরে অথবা একটি প্যারেন্ট এলিমেন্টের ভিতরে রেখে একটি ডেটা হিসেবেই return করতে পারি।
সল্যুশন ১ - প্যারেন্ট এলিমেন্ট দিয়ে Wrap করা
সল্যুশন ২ - প্যারেন্ট হিসেবে Fragment ব্যবহার করা।
2. Close All Tags
JSX এ ব্যবহৃত প্রতিটি ট্যাগ অবশ্যই ক্লোজ করা লাগবে। সেলফ ক্লোজিং ট্যাগ যেমন <img>, <hr> ইত্যাদির ক্ষেত্রে অবশ্যই এভাবে লিখতে হবে: <img />, <hr />।
উদাহরণ
3. camelCase for Attributes
JSX এ যেহেতু আমরা JavaScript লিখছি, সেহেতু multiple-word এর attribute গুলোকে camelCase এ লিখতে হবে।
উদাহরণ
Notes:
classattribute টা যেহেতু জাভাস্ক্রিপ্টের রিজার্ভ কিওয়ার্ড, তাই আমাদেরclassব্যবহার করতে পারবোনা। এর পরিবর্তেclassNameব্যবহার করতে হবে।
JSX এর কার্যকারিতা
যদি JSX এর বদলে সরাসরি JavaScript Object Return করা হয়:
এটি কাজ করবেনা, কারণ এই Object টি React এর ওয়েতে বানানো হয়নি। React createElement ফাংশনের মাধ্যমে Object তৈরি করে:
উপসংহার
JSX আমাদেরকে HTML এর মতো মার্কাপ লিখতে সহায়তা করে এবং এর সাথে যুক্ত জাভাস্ক্রিপ্টের কার্যকারিতাও ব্যবহার করতে দেয়। JSX এর কিছু নির্দিষ্ট রুলস মেনে চললে আমরা কার্যকরী ও ডাইনামিক UI তৈরি করতে পারি। মনে রেখো, সঠিকভাবে JSX ব্যবহার করলে তোমার কোড পরিষ্কার ও ব্যবহারে সহজ হয়।