TGViewer
DevTwitter | توییت برنامه نویسی DevTwitter | توییت برنامه نویسی @devtwitter · 32.7K subscribers
Post #11281 5.5K
تا حالا لیست بزرگی داخل React داشتی که اسکرولش لگ بزنه؟

احتمالاً برای شما هم پیش آمده که یک صفحه زمان زیادی برای لود شدن نیاز داشته باشد یا با لیست‌هایی سروکار داشته باشید که تعداد آیتم‌های آن‌ها زیاد است. در چنین شرایطی، معمولاً اولین تصمیم (حداقل در کوتاه‌مدت) این است که بهینه‌سازی را در سمت client انجام دهیم.

فرض کنید یک لیست با ۵۰۰ آیتم داریم. آیا از نظر فنی می‌توانیم همه‌ی ۵۰۰ آیتم را هم‌زمان داخل DOM رندر کنیم؟ بله، امکان‌پذیر است. اما اگر از زاویه‌ی performance به موضوع نگاه کنیم، بهترین انتخاب نیست.

مسئله‌ی اصلی اینجا این نیست که React توان انجام این کار را ندارد؛ مسئله‌ی این است که:
1. DOM بیش از حد بزرگ می‌شود
2. هزینه‌ی layout و paint به‌شدت افزایش پیدا می‌کند
3. تعامل کاربر (scroll، click، input) کند و ناپایدار می‌شود

در این نقطه معمولاً راه‌حل‌هایی مثل Virtual Scroll / List Virtualization مطرح می‌شوند؛ راه‌حلی که به‌جای رندر همه‌ی آیتم‌ها، فقط المنت‌های داخل viewport را وارد DOM می‌کند. در چنین سناریوهایی، Virtual Scroll یکی از موثرترین راه‌حل‌هاست. ایده‌ی Virtual Scroll ساده است:
همه‌ی داده‌ها وجود دارند, اما همه‌ی آن‌ها هم‌زمان داخل DOM نیستند.

به‌جای رندر ۵۰۰ آیتم، فقط آیتم‌هایی که در viewport دیده می‌شوند (به‌همراه مقدار کمی قبل و بعد از آن) وارد DOM می‌شوند. با اسکرول کاربر، المنت‌های قدیمی حذف و المنت‌های جدید جایگزین می‌شوند.

اگر شما راه‌حل بهتری برای این سناریو دارید، حتماً برام بنویسید
منبع خوب برای آشنایی بیشتر با Virtual Scrolling:
https://medium.com/@sreekanthsreekanth970/virtual-scrolling-2797d722c6e2

@DevTwitter | <Mohammad Khaleghi/>
  • ❤ 14
  • 👍 8
  • 👎 2
More from @devtwitter
  1. Oct 18, 2026🚦‌ ثبت‌نام سری چهاردهم بوت‌کمپ‌های کوئرا آغاز شد! | پاییز ۱۴۰۵ اگه می‌خوای وارد دنیای حرف…
  2. Oct 18, 2026وقتی به همه‌چیز علاقه داری و انتخاب یکی، حسِ از دست دادن بقیه رو می‌ده. این ویدیو دربارهٔ…
  3. Oct 18, 2026تیم Claude Code میگه حدود ۹۰ درصد کد Claude Code رو خود Claude نوشته :) از ژوئن تا سپتامبر…
  4. Oct 18, 2026مفیدتربن ابزاری که با AI بزای خودم ساختم. ابزار کنترل داکر به صورت دسکتاپ، جایگزین داکر دس…
  5. Oct 18, 2026هر چند روز یکبار، هارنس اختصاصی Deepseek به شما ۵ یوآن کردیت میده که به رایگان از مدل‌هاش…
  6. Oct 18, 2026کلاد کد (Claude Code) حالا می‌تونه سرعت سایتت رو با Lighthouse بررسی کنه، مشکلات کندی رو ب…
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 →