Spread and Rest Operators in React – Writing Concise and Readable Component Code

JavaScript’s spread and rest operators offer powerful ways to manage props and object data in React. This article explores how to pass props more concisely using the spread operator, how to extract specific properties with the rest operator, and how to apply destructuring techniques to improve readability and maintainability in React components.

spread operatorspread operatorprops destructuringReact components

~2 دقیقه مطالعه • بروزرسانی ۳۰ مهر ۱۴۰۴

مقدمه


در React، ارسال پراپس‌ها بین کامپوننت‌ها ممکن است در صورت ارسال دستی هر پراپرتی، طولانی و تکراری شود. عملگرهای اسپرد و رست در جاوااسکریپت این فرآیند را ساده‌تر و خواناتر می‌کنند. آن‌ها به ما اجازه می‌دهند تا چندین پراپرتی را به‌صورت تمیز و مؤثر مدیریت کنیم.


مرحله اول: ارسال پراپس‌ها به‌صورت دستی


در ابتدا، هر پراپرتی از آیتم به‌صورت جداگانه به کامپوننت Item ارسال می‌شود:


{list.map((item) => (
  
))}

این روش کار می‌کند، اما باعث شلوغی در کامپوننت والد می‌شود.


مرحله دوم: استفاده از عملگر اسپرد


می‌توانیم با استفاده از {...item} کد را ساده‌تر کنیم:


{list.map((item) => (
  
))}

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


مرحله سوم: استفاده از عملگر رست


برای حذف objectID از پراپس‌ها (که فقط برای کلید استفاده می‌شود)، از عملگر رست استفاده می‌کنیم:


{list.map(({ objectID, ...item }) => (
  
))}

اکنون objectID جدا شده و باقی‌ماندهٔ آیتم به‌صورت پراپس ارسال می‌شود.


destructuring پراپس‌ها در کامپوننت‌ها


در کامپوننت Item می‌توانیم پراپس‌ها را مستقیماً در امضای تابع destructure کنیم:


const Item = ({ title, url, author, num_comments, points }) => (
  
  • {title} {author} {num_comments} {points}
  • );

    destructuring تو در تو (اختیاری)


    برای آبجکت‌های تو در تو، می‌توان از destructuring تو در تو استفاده کرد:


    const Item = ({
      item: {
        title,
        url,
        author,
        num_comments,
        points,
      },
    }) => (...)

    از این روش فقط زمانی استفاده کنید که خوانایی را افزایش دهد.


    جمع‌بندی


    عملگرهای اسپرد و رست باعث تمیزتر شدن کدهای React می‌شوند. از اسپرد برای ارسال همهٔ پراپرتی‌ها، و از رست برای حذف پراپرتی‌های خاص استفاده کنید. ترکیب این روش‌ها با destructuring باعث نوشتن کدی خوانا، قابل نگهداری و حرفه‌ای می‌شود — مخصوصاً در پروژه‌های تیمی که وضوح کد اهمیت زیادی دارد.


    نوشته و پژوهش شده توسط دکتر شاهین صیامی