Drag and drop in react was a lot easier than I thought

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ก.พ. 2025
  • 💬 Discord / discord
    🔔 Newsletter newsletter.web...
    📁 GitHub github.com/web...
    📺 Twitch / webdevcody
    🤖 Website webdevcody.com
    🐦 Twitter / webdevcody

ความคิดเห็น • 114

  • @dhunsworth
    @dhunsworth 2 ปีที่แล้ว +35

    I always had in my mind that this would be super complex and definitely a situation to go looking for some package that would make it reasonable. Thanks for showing us this!

    • @WebDevCody
      @WebDevCody  2 ปีที่แล้ว

      Glad it was helpful!

  • @buraksurumcuoglu8303
    @buraksurumcuoglu8303 2 ปีที่แล้ว +20

    I just got out of a meeting on my dev job and we talked about a new page with drag and drop functionality, your timing is incredible 😅

  • @df6148
    @df6148 3 หลายเดือนก่อน +1

    3:45 that was pretty cool. Seeing that the drag event is actually firing a ton of times until it finally gets its desired trigger point (release click). I think I’m going to sub just for showing me this. 😂. I like when people show the little things like this that really shed light on what’s going on under the hood. Thank You!

  • @saman6199
    @saman6199 2 ปีที่แล้ว +14

    This is awesome, I always avoided to even try this feature, because I thought it could be complicated. But you made it look so easy with your walkthrough. Will definitely give it a shot. Thanks for your effort 😊

  • @Gabrielmo00
    @Gabrielmo00 10 หลายเดือนก่อน

    Best tutotial! I have had trouble with react drag and drop libraries in the past. I was in need to start a new project that woul require a simple drag and drop, and your example give me the kickstart that I need. Thanks man!

  • @selahadinjemal7138
    @selahadinjemal7138 10 หลายเดือนก่อน +1

    I just saw this in a job posting as a best to have skill and wanted to check it out. simple, effective, no blabber. Thanks!

  • @51Grimz
    @51Grimz ปีที่แล้ว +4

    Useful video on a quick and simple native drag and drop without any libraries or anything! Follow up to this would be dragging and dropping in any index of the droppable area. Say you drag Widget C in between Widget A and B. Not just appending it to the end.

    • @estoupensa27
      @estoupensa27 ปีที่แล้ว +1

      Do you know how to drag and drop inside of the droppable area?

  • @eveguelarocha9961
    @eveguelarocha9961 2 ปีที่แล้ว +1

    I think just last week, I needed this kind of code in react, I ended up searching for code then copied and pasted it and just changed variables and stuff and it worked, but this video made me realize I need to recode it and do it with my own logic to improve my skills, Thanks mate! I thought it was so complicated, was thinking to use, dom manipulation etc but i think, i think too much on the problem. Thank you again, will keep following your page for more advice !

    • @ifeanachofavour409
      @ifeanachofavour409 ปีที่แล้ว +1

      Hi
      Mind sharing the resource to the code you found.

  • @Rico-cp4xp
    @Rico-cp4xp 10 หลายเดือนก่อน

    Been looking into dnd lately, crazy how simple that is. Great video as always 👍

  • @Codeface99
    @Codeface99 2 หลายเดือนก่อน

    Best video ever. Using the knowledge gained here to make another drag and drop video.

  • @Earth_Elegance_
    @Earth_Elegance_ 8 หลายเดือนก่อน

    Thank you. This is easy than I thought. I realized it because of you

  • @ilovelctr
    @ilovelctr ปีที่แล้ว

    Wow, thanks a ton for this splendid tutorial! I didn't think this could be implemented using such exquisitely clean code, and thought that it might end up as equally annoying as if otherwise built via vanilla JavaScript and real DOM manipulation. Absolutely appreciate how elegant this is.

  • @siva002
    @siva002 ปีที่แล้ว

    So much easier to understand. Thank you. You saved me the trouble of going with react-dnd or dnd-kit which are very sophisticated, but overkill. As long as we don't need mobile or too much cross browser compatibility ( for example, internal websites), this is more than enough.

  • @ryanwoods3333
    @ryanwoods3333 2 ปีที่แล้ว +1

    great video! would you consider doing a video in React where a user can click on a product for example and show a pop up modal? So there would be multiple modals with different content. Not sure how to do this in pure React without installing some NPM package...

    • @WebDevCody
      @WebDevCody  2 ปีที่แล้ว +2

      thank you for the super thanks! I could potentially do that for a react challenge video when I get time

  • @ZACKDEV
    @ZACKDEV 2 ปีที่แล้ว

    Wow you made learning this super easy, I was looking into this feature recently with a lot of complicated topics. This make is super simple for us to recreate it and experiment!

  • @FXTripazha
    @FXTripazha ปีที่แล้ว

    Easier than I expected, thanks! Subscribed

  • @matze489
    @matze489 ปีที่แล้ว

    this is amazing, i thought i would need to use some lib todo that but with knowing these events its actually pretty easy todo it on you own

  • @saladin_advanced
    @saladin_advanced 5 หลายเดือนก่อน

    Best video explaining drag n drop.

  • @blu5037
    @blu5037 2 ปีที่แล้ว

    Nice video! Never implemented this feature, but for a long time I thought we'd have to track the cursor position and everything. Cool to see that it can be implemented with little lines of code.

  • @Vimal-tr3tl
    @Vimal-tr3tl 8 หลายเดือนก่อน

    Minimal much needed. Thank you.

  • @ThisIsLiving__
    @ThisIsLiving__ 2 ปีที่แล้ว +1

    I have always had a project in mind requiring me to use this feature - but eventually, the complexity of my ambition made me never do it but I ll definitely do it now

  • @rredington305
    @rredington305 10 หลายเดือนก่อน

    I've got this part sorted 👍🏼 next im working on a DnD sortable list using standard React without success. Pls make a DnD sortable list video 🙏🏻

  • @MahmoudBA
    @MahmoudBA ปีที่แล้ว

    you made it look so easy great work!

  • @ReDestro69
    @ReDestro69 ปีที่แล้ว

    Enjoyed this video. Apparently, I'm working on a client project where I'm building a module very similar to DocuSign. I'll be dragging different fields onto the document and assigning users to each field to fill out/sign.

  • @Ayush_Bob
    @Ayush_Bob ปีที่แล้ว

    That was suprisingly easy thanks a lot and easy to build upon

  • @serenity-sounds551
    @serenity-sounds551 4 หลายเดือนก่อน

    This was a helpful video for me.

  • @glcorreia
    @glcorreia 6 หลายเดือนก่อน

    I thought this would require plugins and a lot more code. Thanks for sharing

  • @noahwinslow3252
    @noahwinslow3252 2 ปีที่แล้ว

    I've been interested in making a game like stacklands for a while, perfect fun project with drag and drop

  • @hellome3046
    @hellome3046 9 หลายเดือนก่อน

    thank you very much

  • @tiktalk4573
    @tiktalk4573 10 หลายเดือนก่อน

    Thanks this is useful for us!

  • @TheSourLemonz
    @TheSourLemonz 2 ปีที่แล้ว

    Very informative, nice work

  • @MubashirullahD
    @MubashirullahD ปีที่แล้ว

    That was so cool. And Im actually going to use for a professional use case. Need to build something to match pictures with words.

    • @MubashirullahD
      @MubashirullahD ปีที่แล้ว

      WIsh the code was on a snippet :)

  • @nonstopper
    @nonstopper 2 ปีที่แล้ว +25

    Now make it re orderable

    • @zzzyyyxxx
      @zzzyyyxxx ปีที่แล้ว +2

      DND Kit makes this super easy to do

    • @harithmu
      @harithmu ปีที่แล้ว +1

      you have a repo? because i find it very hard to do it where its something like in vid. (drag n drop but original item still there)

    • @ivan.jeremic
      @ivan.jeremic 5 หลายเดือนก่อน

      dndKit is amazing but the performance pf solidjs would be nice, if there where a similar lib in solidjs K would switch to solid

  • @ameen8891
    @ameen8891 9 หลายเดือนก่อน

    Thanks BRoo

  • @dr.livesey5157
    @dr.livesey5157 2 ปีที่แล้ว

    Thanks!

  • @pauloricardomaltaleal3558
    @pauloricardomaltaleal3558 9 หลายเดือนก่อน

    How can i pick the position when drop, according to dimensions of father component?

  • @saladin_advanced
    @saladin_advanced 5 หลายเดือนก่อน

    It's kind easy finally. thx.

  • @haze4828
    @haze4828 2 ปีที่แล้ว +1

    Would be pretty cool to make it remove the item from the original container once the drop has occurred, although I don't know how long that would take me to figure out 😅

  • @xeliqa3921
    @xeliqa3921 2 ปีที่แล้ว

    how convenient. Am actually looking to build a project with this functionality, similar to a trello board.

  • @vydikvaidya654
    @vydikvaidya654 ปีที่แล้ว +1

    Can I know how to display the HTML code for the item when it's dropped

  • @digvijaykocherla
    @digvijaykocherla 20 วันที่ผ่านมา

    After drag and drop how to arrange reorder them?

  • @andlukas
    @andlukas 6 หลายเดือนก่อน +1

    i want to reproduce the behavior of google calendar, when you drag the amount of hours of an event

  • @estheryang6450
    @estheryang6450 ปีที่แล้ว

    Thank you for the explanation! Will love to ask what is the name of the extension you use to show component?

  • @TheBswan
    @TheBswan 2 ปีที่แล้ว +1

    Dnd-kit is the best library for this

    • @ZACKDEV
      @ZACKDEV 2 ปีที่แล้ว

      LOL WHAT THE HECK! it literally is the best!

  • @waytonirvana6426
    @waytonirvana6426 ปีที่แล้ว

    clean and helpfull thank you

  • @panagiotiskyriacou61
    @panagiotiskyriacou61 ปีที่แล้ว

    imagine that when drop widget tothe left create different categories that group the widget. So also the category component is a drop target. It is possible the category (drop target)be also a draggable item so you can merge two categories?

  • @eip408
    @eip408 ปีที่แล้ว

    Awesome stuff! I was also looking for a way to do this drag n drop functionality because I was doing a personal project like shopify customizer. Thanks!

  • @GabrielWis
    @GabrielWis ปีที่แล้ว

    Hi ! I have a problem. When I writing ([]) at state, show error "string is undefined".

  • @appstuff6565
    @appstuff6565 ปีที่แล้ว

    How can we store this new arrangement in a database so it persists?

    • @appstuff6565
      @appstuff6565 ปีที่แล้ว

      you loved the vcomment but can you please guide on something, i am building a linktree clone as a study learnning and i have tables users and links, i fetch links from supabase for that particular user. My main issue is when i fetch links i want them to be fetched as i arrange them in the list. How do i persist that? Thanks.

  • @Tregadbm
    @Tregadbm ปีที่แล้ว

    Wait, how are your elements fully opaque while dragging and animate back on unsuccessful drag?
    Could it be your browser? I'm using chrome.

    • @WebDevCody
      @WebDevCody  ปีที่แล้ว

      Must be built into the browser because I didn’t add styles

  • @ifeanachofavour409
    @ifeanachofavour409 ปีที่แล้ว

    Hi that is really cool and I do currently have need for a drag and drop implementation.
    Wanted to ask if you could attach a link to the documentation for this.
    Hoping to hear from you soon. Thanks

  • @maxclouatre2703
    @maxclouatre2703 2 ปีที่แล้ว

    Love this! Custom starter or did you find this in the Vite docs? Thanks!

    • @WebDevCody
      @WebDevCody  2 ปีที่แล้ว +1

      This is a vite setup

  • @r1nzai
    @r1nzai 2 ปีที่แล้ว +1

    I'd rather use react-beautiful-dnd which is used internally for trello and jira as well, and is like super easy to implement

    • @keifer7813
      @keifer7813 2 ปีที่แล้ว

      What's the cost though? In terms of bundle size and page speed?

    • @SwedishDude08
      @SwedishDude08 ปีที่แล้ว

      It is no longer maintained though :(

  • @jorims8537
    @jorims8537 ปีที่แล้ว

    nice idea with using the state and just appending elements. However, the usecase for this is very limited. If the position (order) matters in which I would drag my element in, it would obviously not work.

  • @chesterxp508
    @chesterxp508 ปีที่แล้ว

    GoodJob!

  • @criztiandev
    @criztiandev ปีที่แล้ว

    Hi I just want to ask, how about free drag, could you make a video about it ?

  • @ArynKr
    @ArynKr 2 ปีที่แล้ว

    Loved it... Btw what color scheme are you using on vs code?

    • @WebDevCody
      @WebDevCody  2 ปีที่แล้ว

      bearded theme stained blue

    • @ArynKr
      @ArynKr 2 ปีที่แล้ว

      @@WebDevCody Thanks 😀

  • @juanorjuela7161
    @juanorjuela7161 ปีที่แล้ว

    Hello, I really liked your video. I would like to know if there is a repository where I could see the code better or collaborate since a couple of ideas occur to me.

  • @artistry7919
    @artistry7919 2 ปีที่แล้ว

    How can we make a drag and drop feature keyboard accessible?

    • @WebDevCody
      @WebDevCody  2 ปีที่แล้ว

      Not sure, maybe enter to select the item, then left and right arrows to move it around between drop zones?

  • @omomer3506
    @omomer3506 2 ปีที่แล้ว

    Nice, but something i didnt catch, the e.datatranfer carries the actual widget with all of its properties and styles? Ir is something else going jn

    • @WebDevCody
      @WebDevCody  2 ปีที่แล้ว

      It might have a reference to the underlying dragged element, but it’s more for setting custom metadata you can use later when dropping

  • @deepmane5845
    @deepmane5845 6 หลายเดือนก่อน

    locally it is easier how about on server
    save newly formed/droped data to sever but it takes time
    meanwhile on ui it happens quickly so
    my app is todo app in which task are divided such way that complete and incomplete
    if i drag incomplete task to complete it changes data to true on server using redux
    but on ui it takes time to load again how to deal with my app i hope you understand

  • @CaliburPANDAs
    @CaliburPANDAs 2 ปีที่แล้ว +1

    Have you tried React dndkit?

  • @AA-du6hb
    @AA-du6hb 3 หลายเดือนก่อน

    hi, can u make dnd for react pwa app. not sure how to do it for android

  • @SMTarcisio
    @SMTarcisio ปีที่แล้ว

    Hi, I'm from Brazil, I'm new in Javascript and React Js, cool video, so perfectly understandable but I'm trying to make a different thing, an image be drag n drop inside a div and this div has limit of the corners, when the user drag it around off limit of the corner it brings the image back to limit of the div without any package, can you help me with this?

    • @WebDevCody
      @WebDevCody  ปีที่แล้ว

      I’m not sure I don’t work much with drag and drop

  • @ZeNiTh_2K
    @ZeNiTh_2K 2 ปีที่แล้ว +1

    Out of context but which VS Code theme is that ?

    • @WebDevCody
      @WebDevCody  2 ปีที่แล้ว +1

      Bearded theme stained blue

  • @oguzhan2393
    @oguzhan2393 2 ปีที่แล้ว

    how can I drop the div whereever I want.

  • @muhammad-shahin
    @muhammad-shahin ปีที่แล้ว

    can I get this code? did you upload it on github?

  • @mike_dev2014
    @mike_dev2014 ปีที่แล้ว

    Nice tutorial, well explained, although this implementation, which the native Drag&Drop,
    is pointless since since is not supported on mobile devices.
    In other words, lets be honest, we gonna need third party libraries for ever 😂

  • @appstuff6565
    @appstuff6565 ปีที่แล้ว

    but how do you persist this?

  • @amirshaban7115
    @amirshaban7115 ปีที่แล้ว

    Could someone help me out with making it functional with touchEvents instead of dragEvents?

  • @oddsquadd
    @oddsquadd ปีที่แล้ว

    the issue is that it is not working with mui icons

  • @jittojoyes7533
    @jittojoyes7533 ปีที่แล้ว

    Are you using any package here, like react dnd

  • @umargulzar2982
    @umargulzar2982 2 ปีที่แล้ว

    can you please provide GITHUB link for source code?

    • @WebDevCody
      @WebDevCody  2 ปีที่แล้ว

      sorry I don't think I have it, it's too much work for me to upload code for every single video. Just learn what I taught and re-implement is my suggestion.

  • @anagocode
    @anagocode ปีที่แล้ว

    is this react-dnd or react-beautiful-dnd ?

    • @WebDevCody
      @WebDevCody  ปีที่แล้ว

      This is just html events I think

  • @butwhothehellknows
    @butwhothehellknows 2 ปีที่แล้ว +1

    Good job babe!! Also first!

    • @WebDevCody
      @WebDevCody  2 ปีที่แล้ว

      thanks babe! you're back getting first place comments again

    • @YuriC.
      @YuriC. 2 ปีที่แล้ว +1

      That's not fair, she knows when a video is about to drop 🧐

    • @WebDevCody
      @WebDevCody  2 ปีที่แล้ว +1

      @@YuriC. insider trading 😂

  • @DekanTrue111
    @DekanTrue111 2 ปีที่แล้ว

    Well does it work with touch?
    In the past I have had to use react dnd with two logic handlers. Is this not needed anymore?

    • @WebDevCody
      @WebDevCody  2 ปีที่แล้ว

      Oh I didn’t try with touch, good point

  • @shubhampawar7921
    @shubhampawar7921 2 ปีที่แล้ว

    Doesn't work on mobile though.

  • @someunknowngirl7208
    @someunknowngirl7208 2 ปีที่แล้ว

    Very basic and odd example specially when u do setWidgets and spredding state instead of using cb with prev param

    • @WebDevCody
      @WebDevCody  2 ปีที่แล้ว

      How’s that odd? You don’t need the callback anytime you update state

  • @muruga3603
    @muruga3603 2 ปีที่แล้ว