React کی اہم خصوصیات
کمپوننٹ پر مبنی آرکیٹیکچر
React UIs کو آزاد، دوبارہ استعمال ہونے والے کمپوننٹس کی ترکیب کے طور پر تشکیل دیتی ہے۔ ہر کمپوننٹ اپنے اسٹیٹ اور منطق کو مینج کرتا ہے، پھر مل کر پیچیدہ انٹرفیس تشکیل دیتے ہیں۔ یہ ماڈیولرٹی کوڈ کی دوبارہ استعمال کو فروغ دیتی ہے، ٹیسٹنگ کو آسان بناتی ہے، اور بڑی ایپلیکیشنز کو سمجھنے اور برقرار رکھنے میں آسانی فراہم کرتی ہے، کیونکہ ڈویلپر انفرادی حصوں کو الگ تھلگ اور ڈیبگ کر سکتے ہیں۔
ڈیکلیریٹو UI پیراڈائم
ڈوم کو امپیریٹو کمانڈز (جیسے 'عنصر بنائیں'، 'چائلڈ شامل کریں') کے ساتھ دستی طور پر مینج کرنے کے بجائے، آپ بتاتے ہیں کہ کسی بھی دیے گئے اسٹیٹ کے لیے UI کیسا نظر آنا چاہیے۔ React بنیادی ڈیٹا تبدیل ہونے پر مناسب کمپوننٹس کو اپ ڈیٹ اور رینڈر کرنے کا خیال رکھتی ہے۔ اس سے کوڈ زیادہ پیشن گوئی والا ہوتا ہے اور ڈائریکٹ DOM مینجمنٹ سے منسلک غلطیوں کی پوری کلاس ختم ہو جاتی ہے۔
کارکردگی کے لیے ورچوئل DOM
React کا ورچوئل DOM ایک پروگرامنگ تصور ہے جہاں UI کی ایک مثالی، یا 'ورچوئل'، نمائندگی میموری میں رکھی جاتی ہے۔ جب کسی کمپوننٹ کا اسٹیٹ تبدیل ہوتا ہے، React ایک نیا ورچوئل DOM ٹری بناتی ہے، اسے پچھلے سے موازنہ کرتی ہے (ایک عمل جسے 'ڈفنگ' کہتے ہیں)، اور اصل براؤزر DOM کو اپ ڈیٹ کرنے کا سب سے موثر طریقہ شمار کرتی ہے۔ یہ بیچ اپ ڈیٹنگ میکانزم مہنگی DOM آپریشنز کو کم سے کم کرتی ہے، جس سے ایپلیکیشنز تیز اور جوابدہ بنتی ہیں۔
JSX سینٹیکس
JSX جاوا اسکرپٹ کے لیے ایک سینٹیکس ایکسٹینشن ہے جو آپ کو اپنی جاوا اسکرپٹ منطق کے اندر HTML جیسا کوڈ لکھنے کی اجازت دیتی ہے۔ یہ React کمپوننٹ کوڈ کو UI ڈھانچے کی بصری نمائندگی کرکے زیادہ پڑھنے کے قابل اور اظہاری بناتی ہے۔ JSX اختیاری ہے لیکن وسیع پیمانے پر اپنائی جاتی ہے کیونکہ یہ بصری اشارے فراہم کرتی ہے، بہتر غلطی کے پیغامات کو فعال کرتی ہے، اور ڈیفالٹ کے طور پر انجیکشن حملوں کو روکنے میں مدد کرتی ہے، کیونکہ یہ انہیں رینڈر کرنے سے پہلے اس میں سرایت شدہ کسی بھی قدر کو بچا لیتی ہے۔
یک طرفہ ڈیٹا فلو
React میں ڈیٹا ایک ہی سمت میں بہتا ہے—والد سے بچے تک کمپوننٹ ہائیرارکی کے نیچے 'پراپس' کے ذریعے۔ یہ آپ کی ایپلیکیشن کی منطق کو سمجھنے میں آسان بناتا ہے، کیونکہ آپ ٹریک کر سکتے ہیں کہ ڈیٹا میں تبدیلیاں کہاں سے شروع ہوتی ہیں اور وہ کیسے پھیلتی ہیں۔ زیادہ پیچیدہ اسٹیٹ کو مینج کرنے کے لیے، Redux یا Context API جیسی لائبریریز کو ضم کیا جا سکتا ہے، لیکن وہ اب بھی اس بنیادی اصول پر عمل کرتی ہیں۔
ہکس API
React 16.8 میں متعارف کرائے گئے، ہکس آپ کو کلاس لکھے بغیر اسٹیٹ اور دیگر React خصوصیات استعمال کرنے کی اجازت دیتے ہیں۔ `useState`، `useEffect`، اور `useContext` جیسی فنکشنز آپ کو فنکشن کمپوننٹس سے React اسٹیٹ اور لائف سائیکل خصوصیات میں 'ہک' کرنے دیتی ہیں۔ یہ کوڈ کو آسان بناتا ہے، 'this' کلیدی لفظ کی الجھن کو ختم کرتا ہے، اور کمپوننٹس میں دوبارہ قابل استعمال اسٹیٹ فل منطق کی تخلیق کو فروغ دیتا ہے۔