از کدنویسی ریاکت و یا نکست جی اس برای طراحی سایتهای مدرن و سئو لذت میبرم! دنبال توسعهدهنده خلاق برای سایت یا لندینگ پیج هستید؟ من اینجام! 😊 zil.ink/seyedahmaddev
ری اکت ممو چیست؟ چگونه عملکرد ری اکت را بهبود بخشیم؟
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 در نظر گرفته شوند.
مطلبی دیگر از این انتشارات
مهاجرت از نکست جی اس 15 به ری اکت 19: چالشها، موانع و بررسی گزینه بازنویسی یا انتقال پروژه
مطلبی دیگر از این انتشارات
نوشتن ردیوسر Reducer برای مدیریت حالت شمارنده
مطلبی دیگر از این انتشارات
استفاده موثر از روشهای شرطی در React برای بهبود تجربه کاربری