Programmatic Navigation with React Router
অসাধারণ! এখন আমরা react-router-dom-এর Navigating সেকশনটি একদম ডকুমেন্টেশনের মতো সেকশন-ভিত্তিকভাবে, কিন্তু সহজ, প্রাঞ্জল ও বাংলায় লিখবো—যাতে আপনার…
অসাধারণ! এখন আমরা react-router-dom-এর Navigating সেকশনটি একদম ডকুমেন্টেশনের মতো সেকশন-ভিত্তিকভাবে, কিন্তু সহজ, প্রাঞ্জল ও বাংলায় লিখবো—যাতে আপনার রিয়্যাক্ট রাউটিং শেখা হয় মজা দিয়ে।
অধ্যায় ৩: Navigating (পথ খোঁজা সহজ ভাষায়)
React অ্যাপের বিভিন্ন পেজে যাওয়া-আসার জন্য আমাদের লাগে:
🔹 <Link>
🔹 <NavLink>
🔹 useNavigate() হুক
এই অধ্যায়ে আমরা একে একে সব বুঝে নেব, সহজ ভাষায় ও উদাহরণ দিয়ে।
🔰 পরিচিতি (Introduction)
React অ্যাপে এক পেজ থেকে আরেক পেজে যেতে আমরা নিচের তিনটি উপায় ব্যবহার করি:
<Link>: সাধারণভাবে কোন পেজে যেতে<NavLink>: যদি জানতে চাই কোন লিংকটি “active” মানে এখন যে পেজে আছি সেটা দেখায়useNavigate(): যখন ইউজার ক্লিক না করেও কোড থেকে পেজ চেঞ্জ করতে চাই
🌟 NavLink — অ্যাক্টিভ লিংক দেখানোর জন্য
যদি আপনি চান যে ইউজার এখন কোন পেজে আছে সেটা স্টাইল করে দেখাতে, তাহলে <NavLink> ব্যবহার করুন।
📦 কোড উদাহরণ:
import { NavLink } from "react-router-dom";
export function MyAppNav() {
return (
<nav>
<NavLink to="/" end>
Home
</NavLink>
<NavLink to="/trending" end>
Trending Concerts
</NavLink>
<NavLink to="/concerts">All Concerts</NavLink>
<NavLink to="/account">Account</NavLink>
</nav>
);
}🎨 CSS দিয়ে active লিংক আলাদা করে দেখানো:
a.active {
color: red;
}NavLink যখন অ্যাক্টিভ হয়, তখন অটোমেটিক .active ক্লাস পায়। আপনি চাইলে এটা দিয়ে স্টাইল করতে পারেন।
🧠 Active স্টেট অনুযায়ী কাস্টম স্টাইল বা কনটেন্ট
NavLink আপনাকে className, style, এমনকি children এর ভেতরেও ফাংশন হিসেবে isActive দেয়।
১. className দিয়ে:
<NavLink
to="/messages"
className={({ isActive }) => (isActive ? "text-red-500" : "text-black")}
>
Messages
</NavLink>২. style দিয়ে:
<NavLink
to="/messages"
style={({ isActive }) => ({
color: isActive ? "red" : "black",
})}
>
Messages
</NavLink>৩. children দিয়ে কনটেন্ট পাল্টানো:
<NavLink to="/message">
{({ isActive }) => (
<span className={isActive ? "active" : ""}>
{isActive ? "👉" : ""} Tasks
</span>
)}
</NavLink>এভাবে আপনি নিজের মতো করে অ্যাক্টিভ স্টেট অনুযায়ী সব কিছু কাস্টমাইজ করতে পারেন।
🧷 Link — সাধারণ লিংকের জন্য
যদি আপনি শুধুমাত্র একটি পেজে যেতে চান, কিন্তু অ্যাক্টিভ লিংকের কোনো দরকার নেই, তাহলে <Link> ব্যবহার করুন।
✅ উদাহরণ:
import { Link } from "react-router-dom";
export function LoggedOutMessage() {
return (
<p>
আপনি লগআউট হয়ে গেছেন। <Link to="/login">আবার লগইন করুন</Link>
</p>
);
}এটা সাধারণভাবে ইউজারকে অন্য কোনো পেজে নিয়ে যেতে ব্যবহার হয়।
🚀 useNavigate — ইউজার ক্লিক না করেও রিডাইরেক্ট করার জন্য
এটা হচ্ছে একটা হুক, যা আপনি ব্যবহার করবেন তখন, যখন কোড থেকে ইউজারকে কোথাও পাঠাতে চান — ক্লিক ছাড়াই।
যেমন:
- লগইন সফল হলে ড্যাশবোর্ডে পাঠানো
- অটো-লগআউট করে হোমে পাঠানো
- টাইম শেষ হয়ে গেলে কুইজ সাবমিট করে রেজাল্টে পাঠানো
🧪 উদাহরণ:
import { useNavigate } from "react-router-dom";
export function LoginPage() {
const navigate = useNavigate();
return (
<>
<MyHeader />
<MyLoginForm
onSuccess={() => {
navigate("/dashboard");
}}
/>
<MyFooter />
</>
);
}এখানে, onSuccess ইভেন্টে আমরা navigate("/dashboard") দিয়ে ইউজারকে ড্যাশবোর্ডে পাঠাচ্ছি।
🧭 শেষ কথা
এই অধ্যায়ে আপনি শিখলেন—
| কি শিখলেন | কখন ব্যবহার করবেন |
|---|---|
<Link> | সাধারণ লিংকের জন্য |
<NavLink> | অ্যাক্টিভ লিংক দেখাতে |
useNavigate() | প্রোগ্রাম্যাটিক (কোড দিয়ে) রাউট চেঞ্জ |
🔜 পরবর্তী অধ্যায়: URL Values
আপনি যদি চান, এই ব্লগ পোস্টটি Markdown বা Nextra ফরম্যাটে সাজিয়ে দেই—তাহলে জানিয়ে দিন, আমি সেটাও করে দেব। 😊
React Router Installation
অবশ্যই! যেহেতু আপনার ইউজার 'ডিক্লারেটিভ মোড' বেছে নিয়েছেন, তার জন্য একটি সহজ এবং প্রাঞ্জল ভাষায় ব্লগ পোস্ট নিচে দেওয়া হলো। এটি সিরিজের দ্বিতীয় পোস্ট…
Dynamic Routing with React Router
Absolutely, ভাই! চলুন Routing টপিকটা আমরা একদম একে একে, সহজ ও সরল বাংলায় লিখি—ভাবুন আপনি একজন বন্ধুর পাশে বসেই শেখাচ্ছেন।