توسعه دهنده وب | متخصص ری اکت و نکست | طراح سایت |
ری اکت ممو چیست؟ چگونه عملکرد ری اکت را بهبود بخشیم؟
React.memo چیست؟
- تکنیک memoization در برنامهنویسی برای ذخیره نتایج و جلوگیری از محاسبات تکراری استفاده میشود.
- در ری اکت، React.memo باعث میشود یک کامپوننت فقط زمانی دوباره رندر شود که props آن تغییر کرده باشد.

⚙️ نحوه کار React.memo
- بهطور پیشفرض، تغییر state در والد باعث رندر مجدد همه فرزندان میشود.
- با React.memo، مقایسه سطحی (shallow comparison) روی props انجام میشود و اگر تغییری نبود، رندر مجدد حذف میشود.
- برای props پیچیده (آبجکتها و آرایهها)، مقایسه سطحی کافی نیست و ممکن است نیاز به تابع مقایسه سفارشی باشد.
✅ مزایا
- جلوگیری از رندرهای غیرضروری
- بهبود عملکرد در کامپوننتهای سنگین یا لیستهای بزرگ
- بهینهسازی تجربه کاربری
🧩 موارد استفاده مناسب
- تغییرات مکرر props در والد ولی خروجی ثابت در فرزند
- کامپوننتهای دارای محاسبات سنگین
- لیستهای بزرگ با دادههای پویا
- کامپوننتهای تابعی خالص (pure function components)
⚠️ مواردی که استفاده از React.memo سودی ندارد
- اگر props همیشه تغییر کنند، مقایسه انجام میشود ولی رندر همچنان اتفاق میافتد → سربار اضافی بدون سود.
- بهتر است قبل از استفاده، با ابزار React Profiler بررسی کنید که آیا واقعاً بهینهسازی لازم است یا خیر.
🔧 ابزارهای مرتبط
- useMemo: برای ذخیره نتایج محاسبات سنگین.
- useCallback: برای ذخیره مرجع توابع و جلوگیری از ساخت مجدد آنها.
⏱️ اهمیت عملکرد
- طبق Doherty Threshold، پاسخ کمتر از 400ms باعث حفظ توجه کاربر میشود.
- در پروژههای بزرگ باید از ابتدا بهینهسازیهایی مثل memoization، pagination و lazy loading در نظر گرفته شوند.
مطلبی دیگر از این انتشارات
آموزش ری اکت پیشرفته
مطلبی دیگر از این انتشارات
سرور کامپوننت و SSR در React: یه راهنمای ساده
مطلبی دیگر از این انتشارات
آموزش هوک یوزافکت useEffect در ری اکت