frontend-interview-questions

1. چه تکنیک‌هایی می‌توانید برای بهینه‌سازی عملکرد یک برنامه React استفاده کنید؟


2. هدف از React.memo چیست و چه زمانی از آن استفاده می‌کنید؟

React.memo یک HOC است که جلوی رندرهای غیرضروری یک کامپوننت را می‌گیرد اگر props آن تغییر نکرده باشد.

مورد استفاده: کامپوننت‌های تابعی که خالص هستند و props یکسانی را بارها دریافت می‌کنند.

به‌خصوص در رندر لیست‌ها یا کامپوننت‌های تو در تو که والد آن‌ها مرتب رندر می‌شود، مفید است.


3. هوک‌های useCallback و useMemo چگونه کار می‌کنند و چگونه به عملکرد کمک می‌کنند؟

چرا مهم است: از بازسازی غیرضروری توابع یا مقادیر جلوگیری می‌کند، که به جلوگیری از رندرهای مجدد یا محاسبات دوباره کمک می‌کند، به‌ویژه هنگام انتقال props به کامپوننت‌های فرزند یا وابستگی‌ها به useEffect.


4. تقسیم‌بندی کد در React چیست و چگونه می‌توانید آن را با بارگذاری تنبل پیاده‌سازی کنید؟

تقسیم‌بندی کد برنامه شما را به تکه‌های کوچک‌تر تقسیم می‌کند که بر اساس نیاز بارگذاری می‌شوند، و زمان بارگذاری اولیه را بهبود می‌بخشد.

این کد Profile را فقط در صورت نیاز بارگذاری می‌کند. از React.lazy با Suspense برای تقسیم‌بندی کد در سطح مسیر یا کامپوننت استفاده کنید.


5. چگونه یک مشکل عملکردی ناشی از رندرهای بیش از حد در یک برنامه React را اشکال‌زدایی و رفع می‌کنید؟

مراحل:

  1. فعال کردن React DevTools → رندرهای مجدد را مشخص کنید.
  2. از تب Profiler برای پیدا کردن کامپوننت‌هایی که مرتب به‌روزرسانی می‌شوند استفاده کنید.
  3. وابستگی‌های props/state را بررسی کنید و کامپوننت‌ها را ذخیره کنید (React.memo) یا توابع را (useCallback).
  4. مطمئن شوید useEffect و مصرف‌کنندگان context باعث به‌روزرسانی‌های غیرضروری نمی‌شوند.
  5. از shouldComponentUpdate یا useMemo برای جلوگیری از رندرهای مجدد استفاده کنید.


6. چگونه Core Web Vitals (LCP، FID، CLS) را در یک برنامه React.js اندازه‌گیری و بهبود می‌دهید؟


7. زمانی را توصیف کنید که یک گلوگاه عملکردی را در یک برنامه فرانت‌اند شناسایی و رفع کردید.

در یک داشبورد سنگین داده‌ای، نمودارها با هر تغییر state به دلیل props جدید که هر بار منتقل می‌شد، دوباره رندر می‌شدند. من:

این کار زمان رندر را از حدود ۸۰۰ میلی‌ثانیه به حدود ۱۰۰ میلی‌ثانیه کاهش داد و تاخیر UI را برطرف کرد.


8. چگونه یک برنامه React که به دلیل حجم زیاد بسته از زمان بارگذاری اولیه کند رنج می‌برد را بهینه می‌کنید؟


9. چگونه یک برنامه React را برای شناسایی رندرهای غیرضروری یا نشت حافظه پروفایل می‌کنید؟


10. متوجه نشت حافظه در یک برنامه React شدید. چگونه آن را شناسایی و رفع می‌کنید؟

شناسایی:

رفع: