












ans: website এ HTML, CSS,JS use করি। এখন Browser behind the scene এ একটা DOM tree তৈরী করে যাতে user সেই DOM এর সাথে Interact করতে পারে। React এই Browser DOM এর মতো করে আরেকটা DOM তৈরী করে যেটাকে Virtual DOM বলা হয়। React দুইটা Virtual DOM তৈরী করে। user যখন React App এর মধ্যে DOM এ কোনো Change আনার মতো কিছু করে তখন React দুইটা Virtual DOM এর মধ্যে একটাতে সেই Change গুলো রাখে, আর আরেকটা থাকে আগের ভার্শনের। এখন আগেরটার সাথে নতুনটার তুলনা করে react দেখে আসলে স্পেসেফিক ঠিক কোন Element পরিবর্তন করা হয়েছে। সে অনুসারে react পুরো DOM টাকে re render বা re paint না করে শুধুমাত্র যেই জিনিসটা change হয়েছে সেটাকেই change করে। এতে সহজেই দ্রুত কাজ হয়ে যায় আর অতিরিক্ত কোনো কাজও করতে হয় না Browser এর। আর এভাবেই, এই টেকনিক use করেই react এতো first Render করতে পারে।
ans:useState হচ্ছে এমন একটি ডাটা অথবা ভেলু যেটা চেঞ্জ হয় প্রয়োজন অনুসারে। useState() একটি ফাংশন এটি একটি initial value গ্রহন করে। এটি একটি array রিটার্ন করে যেটার ভিতরে ২টি element থাকে। ফার্স্ট ইনডেক্সে initial value পাই এবং সেকেন্ড ইনডেক্সে আমরা একটি ফাংশন পাই এবং এই ফানশনের মাধ্যমেই আমরা আমাদের ষ্টেট ডাটা আপডেট করি। আমরা যখন ফাংশনটি call করি তখন আসলে আমরা React কে বলি যে আমাদের state আপডেট হয়েছে, React তখন পুরো Counter কে আবার রেন্ডার করে, আর যখন এটি re-render হয় তখন আমাদের পুরো কম্পোনেন্ট ফাংশনটি আবার re-run হয়। এবং এই re-run হওয়ার মাধ্যমে আমরা আমাদের আপডেটেড ষ্টেট value টি পাই।