Tạo một component Drag and Drop trong ReactJS
Trong bài tập này, mình sẽ tạo một component DragAndDrop trong ReactJS để thực hiện chức năng kéo thả (drag and drop). Khi người dùng kéo một phần tử, mình sẽ hiển thị vị trí mới của phần tử đó trong console.
Drag and Drop trong ReactJS
Đầu tiên, mình sẽ tạo một component React để thực hiện chức năng kéo thả. Đặt tên component là DragAndDrop.js
.
// src/components/DragAndDrop.js import React from 'react'; import './DragAndDrop.css'; const DragAndDrop = () => { const handleDragStart = (e) => { e.dataTransfer.setData('text/plain', 'Drag Me!'); }; const handleDragOver = (e) => { e.preventDefault(); }; const handleDrop = (e) => { e.preventDefault(); const newPosition = e.clientX + "," + e.clientY; console.log('New position:', newPosition); }; return ( <div className="draggable-element" draggable="true" onDragStart={handleDragStart} onDragOver={handleDragOver} onDrop={handleDrop} > Drag me! </div> ); }; export default DragAndDrop;
CSS cho DragAndDrop
Tiếp theo, mình sẽ tạo một file CSS để thiết lập kiểu dáng cho component DragAndDrop
. Đặt tên file là DragAndDrop.css.
/* src/components/DragAndDrop.css */ .draggable-element { width: 150px; height: 50px; background-color: #66ccff; color: white; text-align: center; line-height: 50px; cursor: grab; user-select: none; }
Tích hợp vào ứng dụng
Cuối cùng, mình tích hợp component DragAndDrop
vào ứng dụng chính.
// src/App.js import React from 'react'; import DragAndDrop from './components/DragAndDrop'; function App() { return ( <div className="App"> <h1>ReactJS: Handling Events</h1> <DragAndDrop /> </div> ); } export default App;
Kết quả:
Bài tập Drag and Drop đã hoàn thành. Bạn đã tạo một component React có khả năng thực hiện chức năng kéo thả. Khi bạn kéo phần tử, vị trí mới của nó sẽ được hiển thị trong console.
Tuy nhiên, để có trải nghiệm tốt hơn, bạn có thể mở rộng chức năng này bằng cách thêm logic để cập nhật vị trí của phần tử trên giao diện người dùng. Chúc bạn thành công!
Bài giải
-------------------- ######## --------------------
Câu hỏi thường gặp liên quan:
- Tạo một component ButtonClick trong ReactJS
- Tạo một component ToggleButton trong ReactJS
- Tạo một component InputChange trong ReactJS
- Tạo một component MouseHover trong ReactJS
- Tạo một component FormSubmission trong ReactJS
- Tạo một component DoubleClick có chứa một phần tử trong ReactJS
- Tạo một component KeyPress trong ReactJS
- Tạo một component Image Click trong ReactJS
- Tạo một component Context Menu trong ReactJS
- Tạo một component Drag and Drop trong ReactJS
- Tạo một component LinkClick trong ReactJs
- Tạo một component ResizeWindow trong ReactJS
- Tạo một component HoverEffect trong ReactJS
- Tạo một component DynamicButton trong ReactJS
- Tạo một component PasswordStrengthChecker trong ReactJS
- Tạo một component CopyToClipboard trong ReactJS
- Tạo một component ScrollEvent trong ReactJS
- Tạo một component Autocomplete trong ReactJS