TGViewer
CodeVerse | دنیای برنامه نویسان CodeVerse | دنیای برنامه نویسان @codeverse_dev · 1.06K subscribers
Post #204 189
⚡ اشتباهی که باعث می‌شود React App شما کندتر از حد انتظار شود
فرض کنید می‌خواهید لیست کاربران فعال را نمایش دهید:
function UsersList({ users }) { const activeUsers = users.filter( user => user.active ); return ( <div> {activeUsers.map(user => ( <UserCard key={user.id} user={user} /> ))} </div> ); } 

کد کاملاً درست به نظر می‌رسد...
اما یک نکته وجود دارد:
در هر Render کامپوننت، عملیات ()filter دوباره اجرا می‌شود.
اگر:
✅ ۱۰۰ کاربر داشته باشید
مشکلی نیست.
اما اگر:
🔥 ۱۰,۰۰۰ کاربر داشته باشید
یا
🔥 چندین بار در ثانیه Render اتفاق بیفتد
هزینه پردازش به‌سرعت افزایش پیدا می‌کند.
راه حرفه‌ای:
const activeUsers = useMemo( () => users.filter( user => user.active ), [users] ); 

🎯هوک useMemo باعث می‌شود محاسبه فقط زمانی انجام شود که داده‌ها تغییر کرده باشند.

نکته مهم:
❌ از useMemo برای همه چیز استفاده نکنید.
✅ فقط برای محاسبات سنگین یا داده‌های بزرگ.
💡 یکی از تفاوت‌های توسعه‌دهندگان حرفه‌ای Frontend این است که فقط به «درست کار کردن» فکر نمی‌کنند؛ به «هزینه اجرای کد» هم فکر می‌کنند.

#ReactJS #JavaScript #Frontend

@CodeVerse_dev
  • ❤ 5
More from @codeverse_dev
  1. Oct 9, 2026🧪ابزار Promptfoo: به جای حدس زدن، تست کن یه سؤال: وقتی یه پرامپت می‌نویسی، از کجا می‌فهمی…
  2. Oct 9, 2026📝 گوگل یک اپ یادداشت‌بردار صوتی آفلاین با هوش مصنوعی معرفی کرد! 🔹ابزار AI Edge Foresight…
  3. Oct 7, 2026👨‍💻 برنامه‌نویسی با AI راحت‌تر شده؛ پس چرا بعضی Developerها خسته‌تر شده‌اند؟ طبق نظرسنجی…
  4. Oct 7, 2026🚨 وردپرس 7.1.3 منتشر شد؛ این یکی را عقب نینداز وردپرس دیروز نسخه 7.1.3 را منتشر کرد؛ یک آ…
  5. Oct 6, 2026شرکت Google وارد یک درگیری جدی با ناشران شده ⚖️ رگولاتور رقابت لهستان اعلام کرده Google را…
  6. Oct 6, 2026اگر Windows 11 داری، قبل از نصب بعضی آپدیت‌ها حواست باشد ⚠️ مایکروسافت تأیید کرده آپدیت پی…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →