چگونه می توان از قلاب های استفاده شده و استفاده شده از React Dnd استفاده کرد؟

Jul 09, 2025

پیام بگذارید

در دنیای پویا توسعه React ، توانایی اجرای عملکرد کشش و رها کردن می تواند به طور قابل توجهی تجربه کاربر را افزایش دهد. React DND (کشیدن و رها کردن) یک کتابخانه محبوب است که روند افزودن ویژگی های کشیدن و قطره ای را به برنامه های React ساده می کند. در این وبلاگ ، به عنوان تأمین کننده قلاب ، من به نحوه استفاده از آن می پردازممورد استفادهوتمورد استفادهقلاب از React DND به طور مؤثر.

درک React dnd

قبل از پرش بهمورد استفادهوتمورد استفادهقلاب ، بیایید به طور خلاصه بفهمیم DND React چیست. React DND کتابخانه ای است که شما را قادر می سازد تا با سهولت ، رابط های پیچیده کشیدن و قطره ای ایجاد کنید. این جزئیات سطح پایین در مورد استفاده از ماوس و رویدادهای لمسی را خلاصه می کند و به شما امکان می دهد تا روی منطق برنامه خود تمرکز کنید.

مفهوم اصلی React DND حول ایده "منابع کشیدن" و "اهداف افت" می چرخد. منبع کشیدن عنصری است که می تواند کشیده شود ، در حالی که یک هدف قطره عنصری است که در آن می توان یک مورد کشیده شده را رها کرد. درمورد استفادهاز هوک برای تعریف منبع کشیدن استفاده می شود ، ومورد استفادههوک برای تعریف هدف قطره استفاده می شود.

راه اندازی پروژه

ابتدا باید React DND را در پروژه خود نصب کنید. شما می توانید این کار را با استفاده از NPM یا نخ انجام دهید:

NPM REACT-DND React-DND-HTML5-BACKEND را نصب کنید

درواکنش-DND-HTML5یک باطن است که از API HTML5 Drag-and-Drop برای انجام عملیات واقعی کشیدن و قطره استفاده می کند.

در مرحله بعد ، شما باید درخواست خود را باdndprovidsمؤلفه این مؤلفه زمینه لازم را برایمورد استفادهوتمورد استفادهقلاب به کار

واردات {dndprovider} از 'react-dnd' ؛ وارد کردن html5backend از "React-dnd-HTML5-Backend" ؛ const app = () => {Return (<dndprovider backend = {html5backend}> {/ * مؤلفه های برنامه شما */} </dndprovider>) ؛ } ؛ برنامه پیش فرض صادرات ؛

با استفاده ازمورد استفادهقلاب

درمورد استفادههوک برای تعریف منبع کشیدن استفاده می شود. این یک شی با چندین ویژگی به عنوان یک استدلال می گیرد. در اینجا یک مثال اساسی استفاده ازمورد استفادهقلاب:

واردات {استفاده شده} از 'React-dnd' ؛ const draggableItem = ({id ، name}) => {const [{isDragging} ، drag] = useSrag ({مورد: {نوع: 'مورد' ، id ، نام} ، جمع آوری: (مانیتور) => ({isdragging: مانیتور.) ،}) ،}) ؛ const opacity = isDragging؟ 0.5: 1 ؛ بازگشت (<div ref = {drag} style = {{Opacity}}> {name} </iv>) ؛ } ؛ صادرات پیش فرض DraggableItem ؛

در این مثال ، ما a را تعریف می کنیمDraggableItemمؤلفه ای که می تواند کشیده شود. درمورد استفادههوک یک شی با دو ویژگی اصلی می گیرد:

  • قسمت: این شیئی است که داده های کشیده شده را نشان می دهد. این می تواند حاوی اطلاعاتی باشد که می خواهید به همراه مورد کشیده شده منتقل کنید. در این حالت ، ما نوع مورد ، شناسه آن و نام آن را درج می کنیم.
  • جمع کردن: این تابعی است که با داده هایی که می خواهید از عملیات درگ جمع آوری کنید ، یک شی را برمی گرداند. در این حالت ، ما جمع آوری می کنیمدرزدولت ازنظارتشیء. درنظارتObject اطلاعاتی در مورد عملکرد درگ فعلی ارائه می دهد ، مانند اینکه مورد در حال کشیدن است یا خیر.

درمورد استفادههوک یک آرایه را با دو عنصر برمی گرداند:

  • عنصر اول یک شی با داده های جمع آوری شده ازجمع کردنعملکرد. در این حالت ، حاوی آن استدرزدولت
  • عنصر دوم تابعی است که شما باید به آن منتقل کنیدپیروزغرفه عنصری که می خواهید قابل کشیدن باشد. این تابع دستگیرندگان رویداد لازم را به عنصر وصل می کند تا قابل کشیدن باشد.

با استفاده ازمورد استفادهقلاب

درمورد استفادههوک برای تعریف هدف قطره استفاده می شود. همچنین یک شی با چندین ویژگی به عنوان یک آرگومان می گیرد. در اینجا یک مثال اساسی استفاده ازمورد استفادهقلاب:

واردات {استفاده شده} از 'React-dnd' ؛ const droptarget = ({ondrop}) => {const [{candrop ، isover} ، drop] = استفاده شده ({پذیرش: "مورد" ، قطره: (مورد) => {ondrop (مورد) ؛} ، جمع آوری: (مانیتور) => ({candrop: monitor.candrop () ، isover: intric.isover ()}) ؛ const backgroundcolor = candrop && isover؟ "Lightgreen": "سفید" ؛ بازگشت (<div ref = {drop} style = {{backgroundColor}}> قطره در اینجا </div>) ؛ } ؛ صادرات پیش فرض Droptarget ؛

در این مثال ، ما a را تعریف می کنیمگودالمؤلفه ای که می تواند موارد افتاده را بپذیرد. درمورد استفادههوک یک شی با سه ویژگی اصلی می گیرد:

new england bathroom accessoriesnew design bathroom accessories

  • قبول کردن: این یک رشته یا مجموعه ای از رشته ها است که انواع مواردی را که هدف قطره می تواند آن را بپذیرد ، مشخص می کند. در این حالت ، ما مواردی از نوع "مورد" را می پذیریم.
  • افت: این تابعی است که هنگام ریختن یک مورد در هدف قطره نامیده می شود. طول می کشدقسمتشیء که به همراه مورد کشیده شده به عنوان یک استدلال منتقل شد. در این حالت ، ما تماس می گیریمبرخاستنعملکرد به عنوان یک پیش بینی بهگودالمؤلفه
  • جمع کردن: این تابعی است که با داده هایی که می خواهید از عملیات قطره جمع کنید ، یک شی را برمی گرداند. در این حالت ، ما جمع آوری می کنیمچاکوتایزوورایالات ازنظارتشیء. درنظارتObject اطلاعاتی در مورد عملکرد قطره فعلی ارائه می دهد ، مانند اینکه آیا می توان مورد را روی هدف ریخت یا اینکه در حال حاضر بیش از هدف است.

درمورد استفادههوک یک آرایه را با دو عنصر برمی گرداند:

  • عنصر اول یک شی با داده های جمع آوری شده ازجمع کردنعملکرد. در این حالت ، حاوی آن استچاکوتایزوورایالات
  • عنصر دوم تابعی است که شما باید به آن منتقل کنیدپیروزغرفه عنصری که می خواهید یک هدف قطره ایجاد کنید. این تابع دستگیرندگان رویداد لازم را به عنصر وصل می کند تا آن را به یک هدف قطره تبدیل کند.

ترکیبمورد استفادهوتمورد استفاده

اکنون که می دانیم چگونه استفاده کنیممورد استفادهوتمورد استفادهقلاب ها به طور جداگانه ، بیایید ببینیم که چگونه می توانیم آنها را برای ایجاد یک برنامه ساده کشیدن و رها کردن ترکیب کنیم.

Import React ، {Usestate} از 'React' ؛ واردات {dndprovider} از 'react-dnd' ؛ وارد کردن html5backend از "React-dnd-HTML5-Backend" ؛ وارد کردن DraggableItem از './draggableitem' ؛ وارد کردن droptarget از './droptarget' ؛ const app = () => {const [dropeditems ، setDroppedItems] = useState ([]) ؛ const handledrop = (مورد) => {setDroppedItems ((prevItems) => [... previtems ، مورد]) ؛ } ؛ بازگشت (<dndprovider backend = {html5backend}> <div> <h1> موارد قابل کشیدن </viv> <div> <h1> موارد افتاده </h1> {dropeditems.map ((مورد) => (<key = {item.id}> {item.name} </viv>))} </iv> </ dndprovider>) ؛ } ؛ برنامه پیش فرض صادرات ؛

در این مثال ، ما یک برنامه ساده با موارد قابل کشیدن و یک هدف قطره ایجاد می کنیم. وقتی یک مورد در هدف قطره ریخته می شود ، ما آن را به آن اضافه می کنیمقطرهدولت

استفاده پیشرفته

React DND بسیاری از ویژگی های پیشرفته را ارائه می دهد که می توانید از آنها برای ایجاد رابط های پیچیده تر کشیدن و رها استفاده کنید. به عنوان مثال ، می توانید ازشروع کردنوتپایانتماسهای برگشتی درمورد استفادهقلاب برای انجام اقدامات هنگام شروع کار و پایان کار. شما همچنین می توانید ازمعلق کردنپاسخ به تماس درمورد استفادهقلاب برای انجام اقدامات هنگامی که یک مورد در حال حرکت به هدف قطره است.

در اینجا مثالی از استفاده ازشروع کردنوتپایانتماسهای برگشتی درمورد استفادهقلاب:

واردات {استفاده شده} از 'React-dnd' ؛ const draggableItem = ({id ، name}) => {const [{isDragging} ، drag] = useSrag ({مورد: {مورد: "مورد" ، شناسه ، نام} ، شروع: (مانیتور) => {console.log ('عمل درگ شروع شده ") ؛} ، پایان: (مورد ، مانیتور) => {مانیتور (مانیتور) (اگر مانیتور) => {مانیتور (مانیتور) => {(مانیتور) (مانیتور) => {(مانیتور). با موفقیت ') ؛ const opacity = isDragging؟ 0.5: 1 ؛ بازگشت (<div ref = {drag} style = {{Opacity}}> {name} </iv>) ؛ } ؛ صادرات پیش فرض DraggableItem ؛

در این مثال ، ما اضافه می کنیمشروع کردنوتپایانتماسهای برگشتی بهمورد استفادهقلاب درشروع کردنهنگام شروع عملیات درگ ، تماس تلفنی خوانده می شود وپایانبا پایان یافتن عملیات درگ ، تماس تلفنی خوانده می شود. ما می توانیم از این تماس های تماس برای انجام اقداماتی مانند ورود به سیستم پیام یا به روزرسانی وضعیت برنامه خود استفاده کنیم.

پایان

درمورد استفادهوتمورد استفادهقلاب های React DND ابزارهای قدرتمندی برای افزودن قابلیت های کشیدن و قطره ای به برنامه های React شما هستند. با درک نحوه کار این قلاب ها و نحوه استفاده مؤثر از آنها ، می توانید رابط های کاربر جذاب و تعاملی ایجاد کنید.

اگر به دنبال قلاب های با کیفیت بالا برای حمام خود هستید ، ما را بررسی کنیدقلاب حمام طلاییوتقلاب حوله لوازم جانبی حمامبشر

اگر علاقه مند به خرید قلاب های ما هستید یا سوالی دارید ، لطفاً برای بحث و گفتگوی دقیق با ما تماس بگیرید. ما متعهد هستیم که بهترین محصولات و خدمات را به شما ارائه دهیم.

منابع

  • مستندات DND واکنش نشان می دهد
  • مستندات

ارسال درخواست