سلام! 👋
امیدوارم حالت خوب باشه و از مسیر یادگیری React لذت ببری. امروز میخوایم بریم سراغ یکی از مهمترین مفاهیمی که باید به عنوان یک توسعه دهنده React یاد بگیری: تفاوت بین props و state.

اگه تا حالا با خودت فکر کردی "مگه اینا یکی نیستن؟ چرا دوتا چیز جدا داریم؟"، تنها نیستی! این دوتا در نگاه اول شبیه هم به نظر میرسن، ولی در واقع کارکردهای کاملاً متفاوتی دارن — و درک درست تفاوتشون میتونه مهارتت رو در React حسابی ارتقاء بده.
پس یک نوشیدنی خوشمزه برای خودت آماده کن ☕ و بیا با هم بررسی کنیم که props و state چطور کار میکنن، چه فرقی با هم دارن، و کی باید از هر کدوم استفاده کنیم. چه تازه کار باشی و چه بخوای پایه هات رو قوی تر کنی، این راهنما میتونه کمکت کنه.
بزن بریم!

اگه تازه با React آشنا شدی، احتمالاً با اصطلاحات props و state برخورد کردی. در نگاه اول ممکنه این دوتا شبیه هم به نظر برسن، اما در واقع عملکردها و رفتارهای متفاوتی دارن که برای ساختن اپلیکیشن های پویا و قابل نگهداری، دونستن تفاوتشون ضروریه.
تو این مقاله، تفاوت بین props و state رو بررسی میکنیم، کی باید از هرکدوم استفاده کنیم، و چرا درک این دو مفهوم برای نوشتن کامپوننتهای تمیز در React حیاتی هست.
خب Props (مخفف “properties”) راهیه که کامپوننت های والد، داده رو به کامپوننت های فرزند منتقل میکنن. میتونی اونا رو شبیه پارامترهای تابع در نظر بگیری.
در ریکت props فقط قابل خواندن هستن. یک کامپوننت فرزند نمیتونه props رو تغییر بده — فقط میتونه از اونها استفاده کنه.
function Greeting({ name }) { return <h1>Hello, {name}!</h1>; } // Parent component <Greeting name="Soheil" />
اما State راهیه برای اینکه یک کامپوننت بتونه اطلاعات خودش رو ذخیره و مدیریت کنه. برخلاف props داخلی هست و میتونه در طول زمان تغییر کنه — معمولاً در پاسخ به ورودی کاربر یا رویدادهای دیگه. state همون چیزیه که باعث میشه کامپوننت های React تعاملی بشن.
useState تعریف میشهimport { useState } from 'react'; function Counter() { const [count, setCount] = useState(0); return ( <> <p>{count}</p> <button ={() => setCount(count + 1)}>Increase</button> </> ); }
خیلی وقت ها، state در کامپوننت والد نگهداری میشه و بعضی از مقادیر اون به فرزندان از طریق props منتقل میشن.
function Avatar({ person, size }) { return ( <img src={`https://image.com/${person.imageId}.jpg`} alt={person.name} width={size} height={size} /> ); } function Profile() { const [size, setSize] = useState(100); return ( <> <Avatar person={{ name: 'Soheil Jafarnejad', imageId: 'YfeOqp2' }} size={size} /> <button ={() => setSize(size + 20)}> Increase size </button> </> ); }
در اینجا:
size توسط state در کامپوننت والد (Profile) مدیریت میشهAvatar) فرستاده میشهاین الگوی رایجی در React هست: state به بالا برده میشه (Lifting State Up) و props به پایین داده میشن (Data Down).
اگه این مقاله برات مفید بود، خوشحال میشم اونو به اشتراک بذاری یا نظرت رو بنویسی! ریکت ابزار قدرتمندیه — ولی فقط وقتی که بدونی چطور داده ها رو به درستی بین کامپوننت هات مدیریت کنی. فهم تفاوت بین props و state یکی از پایه های ساختن رابط کاربری هوشمند و مقیاس پذیر در React هست.
