স্পষ্টতই একটি ভিন্ন আদিম মানকে পুনর্নির্দিষ্ট করা হবে
আসলে তা না. যখন উপাদানটি পুনরায় রেন্ডার করা হয়, তখন ফাংশনটি আবার কার্যকর করা হয়, একটি নতুন সুযোগ তৈরি করে, একটি নতুন count
ভেরিয়েবল তৈরি করে , যার আগের ভেরিয়েবলের সাথে কোনও সম্পর্ক নেই।
উদাহরণ:
let _state;
let _initialized = false;
function useState(initialValue) {
if (!_initialized) {
_state = initialValue;
_initialized = true;
}
return [_state, v => _state = v];
}
function Component() {
const [count, setCount] = useState(0);
console.log(count);
setCount(count + 1);
}
Component();
Component(); // in reality `setCount` somehow triggers a rerender, calling Component again
Component(); // another rerender
দ্রষ্টব্য: হুকগুলি আরও পরিশীলিত এবং বাস্তবে এটি প্রয়োগ করা হয় না। এটি কেবল একটি অনুরূপ আচরণ প্রদর্শন করার জন্য।