Creando un menú arrastrable en React con DndKit

Descubre cómo crear menús móviles con bloques arrastrables utilizando DnD Kit en React. Aprende a implementar DnD con hooks, gestionar el estado y añadir animaciones fluidas.

11 mar 2025 • 2 min de lectura • Equip Q2BSTUDIO

Empresa-Software-Apps

Recientemente, nos encontramos con un desafío en el desarrollo de interfaces interactivas: la necesidad de crear bloques móviles que funcionaran como menús dinámicos, permitiendo el arrastre de botones en cualquier dirección y organizándolos en fila.

Tras investigar diversas bibliotecas, identificamos que DnD Kit ofrecía la mejor solución. Su documentación detallada y ejemplos prácticos permitieron aprovechar al máximo sus funcionalidades clave, como useDraggable para mover elementos y useDroppable para gestionar su inserción en áreas específicas. Además, la personalización de animaciones y la disposición en filas fueron factores decisivos para su elección.

Para la implementación, comenzamos instalando las librerías necesarias y configurando sensores en el contexto de la aplicación, permitiendo la detección de gestos tanto de mouse como de pantallas táctiles. Optamos por utilizar collisionDetection=pointerWithin para optimizar la interacción en función de la posición del puntero y los objetos adyacentes.

El componente principal, DndRoot, gestiona el estado del bloque activo al iniciar el arrastre (handleDragStart), y lo restablece al finalizarlo (handleDragEnd). Además, el evento handleDragOver detecta si el bloque está sobre un área de inserción válida.

La organización de los botones se realizó mediante un estado que los almacena con propiedades como orden y número de fila, facilitando su almacenamiento en bases de datos. Para cada fila, implementamos el componente DndRow, donde se aplica SortableContext para la reorganización horizontal.

En nuestro sistema, las posiciones de los botones cambiaban visualmente al ser arrastrados, pero no se actualizaban en el estado hasta que el usuario liberara el botón. Por ello, desarrollamos funciones específicas para recalcular tanto el orden de los elementos dentro de una fila como el número de fila al mover varios botones entre filas.

Finalmente, optimizamos la experiencia del usuario agregando animaciones para suavizar las transiciones al mover los botones. Para lograr esto, utilizamos la funcionalidad de DragOverlay de DnD Kit, que permite representar un clon del botón mientras se arrastra, logrando una animación fluida.

En Q2BSTUDIO, empresa líder en desarrollo y servicios tecnológicos, aplicamos este tipo de soluciones innovadoras para mejorar la usabilidad de nuestras aplicaciones. Nos especializamos en ofrecer experiencias interactivas eficientes y personalizables, adaptándonos a las necesidades de cada proyecto. Si buscas optimizar tu plataforma con funcionalidad avanzada de drag and drop, nuestro equipo puede ayudarte a implementar soluciones intuitivas y escalables.

Este desarrollo demuestra cómo, con las herramientas adecuadas y una arquitectura bien planificada, es posible mejorar significativamente la interacción del usuario en interfaces digitales.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat