Render মানে কি ?
🔴 React-এ তুমি সরাসরি কোনো সাধারণ ভ্যারিয়েবল (যেমন heading
) দিয়ে UI আপডেট করতে পারো না।
🔍 সমস্যা:
let heading;
function getChildsData(data) {
heading = data;
}
এখানে তুমি heading
নামে একটি সাধারণ JavaScript ভ্যারিয়েবল ব্যবহার করছো।
এবং তুমি আশা করছো heading = data;
করার পর <h1>{heading}</h1>
এর মান আপডেট হবে।
কিন্তু React এ এটা হবে না, কারণ React UI rerender করে শুধু state পরিবর্তন হলে।
✅ সমাধান: useState ব্যবহার করো
তোমাকে heading
কে একটা state বানাতে হবে। তাহলেই React বুঝবে মান পরিবর্তন হয়েছে এবং component rerender করবে।
🔧 ঠিক করে লেখা কোড:
import { useState } from "react";
import { Cards } from "./components/Card";
function App() {
let title = "Ali Engr.";
let text = "I am a software engineer";
const [heading, setHeading] = useState(""); // ✅ heading state
function getChildsData(data) {
setHeading(data); // ✅ state update
}
return (
<div>
<h1 style={{ color: "tomato" }}>{heading}</h1>
<Cards title={title} text={text} onGetChildsData={getChildsData} />
</div>
);
}
export { App };
🧠 কেন useState দরকার?
কারণ | ব্যাখ্যা |
---|---|
✅ React rerender করে শুধু state বা props পরিবর্তন হলে | |
❌ সাধারণ variable (let/var/const) পরিবর্তন করলে React rerender করে না | |
✅ state update করলে React component আবার render করে |
🔚 সংক্ষেপে:
❌ সাধারণ ভ্যারিয়েবল (
let heading
) দিয়ে UI আপডেট হয় না
✅useState
দিয়ে করতে হবে, যাতে React বুঝতে পারে এবং rerender করে
--------------------------------------------------------------------------------------------------------------------------
তুমি যদি React শিখছো শুরুতে, তাহলে হ্যাঁ — তুমি বোঝার সুবিধার্থে বলতেই পারো:
✅
render ≈ reload
(এক রকম রিলোড হয়)
কিন্তু কিছু ভুল বোঝাবুঝি থেকে বাঁচার জন্য আমি নিচে পরিষ্কারভাবে ব্যাখ্যা করছি:
✅ Render = Component পুনরায় চালানো (re-execution)
React এ render()
মানে হচ্ছে component-এর JSX return হওয়া এবং DOM-এ নতুন করে দেখানো।
তবে এটা পুরো page reload না, শুধু component-level update।
🔄 উদাহরণ:
function App() {
const [count, setCount] = useState(0);
return <h1>{count}</h1>;
}
যখন তুমি setCount(1)
দাও, তখন:
✅ React আবার App()
function চালায় → JSX নতুন করে বানায় → DOM-এ শুধু <h1>
আপডেট করে।
Browser পুরো page reload করে না।
❌ তাহলে কি render মানেই browser reload?
না, render মানে browser এর পুরো window/tab reload না।
React শুধু সেই component টুকু পুনরায় চালায় (re-run) আর DOM update করে।
✅ তুমি শেখার জন্য বলতে পারো:
render = browser reload নয়, বরং "component update" বা "virtual DOM এর মাধ্যমে UI পরিবর্তন"।
তবে শুরুতে:
🟢 render = হালকা reload এর মতো কাজ করে (শুধু ওই অংশ) — এইভাবে ভাবা ঠিক আছে।
🧠 সংক্ষেপে:
Term | মানে |
---|---|
reload |
Browser পুরো page রিফ্রেশ করে (F5 বা Ctrl+R) |
render |
React component আবার চলে, JSX → UI তে রূপ নেয় |
rerender |
কোনো state বা props পরিবর্তনে component আবার চালানো হয় |
তুমি একদম সঠিক জায়গায় প্রশ্ন করেছো —
🔍 “Actually, React এ State মানে কী?”
আমি সহজ ভাষায় বাংলায় ব্যাখ্যা করছি ⤵️
🧠 State কী?
👉 State হচ্ছে component-এর ভিতরের data বা অবস্থা (value) যেটা সময়ের সাথে পরিবর্তিত হতে পারে এবং সেই পরিবর্তনের সাথে সাথে React component-কে আবার চালায় (rerender করে)।
🔥 সহজ ভাষায়:
State মানে component-এর ভিতরের এমন মান, যেটা তোমার interaction (যেমন: button click, input change) এর মাধ্যমে বদলাতে পারে, এবং React সেই বদল দেখে নতুন করে UI দেখায়।
🎯 উদাহরণ দিয়ে বোঝি:
import { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0); // ✅ count = state
return (
<div>
<h1>{count}</h1>
<button onClick={() => setCount(count + 1)}>Increase</button>
</div>
);
}
🔹 এখানে count
হচ্ছে state
🔹 যখন তুমি button এ ক্লিক করো → setCount(count + 1)
→ মান পরিবর্তন হয়
🔹 React বুঝে ফেলে state বদলেছে → তাই component rerender করে → নতুন UI দেখায়
⚙️ state মানে কেমন data?
State এ তুমি যেকোনো data রাখতে পারো:
✅ সংখ্যা (
number
)-
✅ টেক্সট (
string
) -
✅ অবজেক্ট (
object
) -
✅ অ্যারে (
array
) -
✅ বুলিয়ান (
true/false
)
🧪 মূল কাজগুলো:
কাজ | ব্যাখ্যা |
---|---|
✅ মান ধরে রাখা | useState("Hello") → value হিসেবে “Hello” থাকবে |
✅ মান পরিবর্তন করা | setState() দিয়ে মান আপডেট |
✅ rerender trigger | মান বদলালে React UI কে আবার বানায় |
🧠 তোমার বোঝার জন্য এক লাইনে:
🔥 React-এর State হলো এমন data, যেটা বদলাতে পারে এবং সেই বদলে UI রিফ্রেশ হয়।
🔚 সংক্ষেপে:
useState()
→ state তৈরি করে-
setState()
বাsetCount()
→ state আপডেট করে -
State বদল → Component rerender → Updated UI