Wie React-DND Drag & Drop implementiert
Implementierungsmethode: 1. Verwenden Sie „import{DndProvider}from ‚react-dnd‘“, um einen ziehbaren Bereich zu definieren. 2. Verwenden Sie „import{useDrag}from ‚react-dnd‘“, um die DragSource so um die Komponente zu wickeln Es kann gezogen werden.
Die Betriebsumgebung dieses Tutorials: Windows 10-System, Reaktionsversion 17.0.1, Dell G3-Computer.
So implementieren Sie Drag & Drop mit React-DND
React DnD ist eine Reihe von React-Komponenten höherer Ordnung, die von Dan Abramov, dem Hauptautor von React und Redux, erstellt wurden und dabei helfen können, komplexe Drag-and-Drop-Schnittstellen zu erstellen Komponenten getrennt halten. „Anforderungen für React DnD“
Integrieren Die Idee des Typvergleichs und der Datenübergabe in HTML5 per Drag & Drop stehlen
- Funktionen von React DnD
- Konzentrieren Sie sich auf Drag & Drop, nicht auf die Bereitstellung vorgefertigter Komponenten React DnD bietet Eine Reihe leistungsstarker Grundelemente, die jedoch keine vorgefertigten Komponenten enthalten, sondern stattdessen die Komponenten des Benutzers umschließen und Requisiten injizieren. Es ist eine niedrigere Ebene als die jQuery-Benutzeroberfläche usw. und konzentriert sich darauf, Drag-and-Drop-Interaktionen korrekt durchzuführen und visuelle Effekte wie Koordinatenbeschränkungen dem Benutzer zu überlassen. Dabei handelt es sich eigentlich um ein Prinzip der Interessenstrennung. Beispielsweise beabsichtigt React DnD nicht, sortierbare Komponenten bereitzustellen, aber Benutzer können darauf basierend schnell alle erforderlichen benutzerdefinierten sortierbaren Komponenten entwickeln.
- Einseitiger Datenfluss
Ähnlich wie React verwendet es deklaratives Rendering und verwendet eine unidirektionale Datenflussarchitektur wie Redux. Tatsächlich wird Redux intern verwendet
HTML5 Die Drag-and-Drop-API ist voller Fallstricke und Browser-Inkonsistenzen. React DnD übernimmt diese intern für Sie, sodass sich Benutzer auf die Entwicklung von Anwendungen konzentrieren können, anstatt Browserprobleme zu lösen.
Erweiterbar und testbarReact DnD bietet standardmäßig einen HTML5-Drag-and-Drop-API-Wrapper, ermöglicht Ihnen aber auch die Bereitstellung eines benutzerdefinierten „Backends“. Sie können ein benutzerdefiniertes DnD-Backend basierend auf Berührungsereignissen, Mausereignissen oder anderen Dingen erstellen. Mit dem integrierten Mock-Backend können Sie beispielsweise Drag-and-Drop-Interaktionen von Komponenten in einer Node-Umgebung testen.
ZukunftsbereitReact DnD exportiert keine Mixins und funktioniert mit jeder Komponente gleich gut, unabhängig davon, ob sie mit ES6-Klassen, createReactClass oder anderen React-Frameworks erstellt wurden. Und die API unterstützt ES7-Dekoratoren.
Beispiele sind wie folgt:
1.1. Verwenden Sie DndProvider, um einen ziehbaren Bereich zu definieren
/* * @Author: muge * @Date: 2021-12-04 16:59:25 * @LastEditors: Please set LastEditors * @LastEditTime: 2021-12-08 14:24:47 */ import React, { useState } from 'react'; import { DndProvider } from 'react-dnd'; import { HTML5Backend } from 'react-dnd-html5-backend'; import SourceBox from './SourceBox'; import TargetBox from './TargetBox'; import TreeBox from './TreeBox'; const item: any[] = [ { id: 1, name: 'muge', }, { id: 2, name: 'muxi', }, { id: 3, name: 'mugege', }, ]; const Container = () => { // 当前拖拽项 const [currentList, setCurrentList] = useState<any>({}); return ( // 类似redux数据传输 需要在最外层包裹对象 <DndProvider backend={HTML5Backend}> <h1>拖拽源组件 列表-----树</h1> <div style={{ display: 'flex' }}> <div> {/* 列表拖拽源 */} {item.map((itemz: any, index: number) => ( <SourceBox setCurrentList={setCurrentList} item={itemz} key={index} /> ))} </div> {/* 注意,不要树组件整体直接设置拖拽,抽成一个组件来遍历每一项 =》自定义渲染*/} {/* 树形拖拽源 */} <TreeBox /> </div> <h1>拖拽放置目标</h1> {/* 拖拽最终放置组件 */} <TargetBox currentList={currentList} /> </DndProvider> ); }; export default Container;
2. Verwenden Sie DragSource, um die Komponente zu umschließen, damit sie gezogen werden kann , Lassen Sie es auf das Ziehen, Schweben oder Ablegen kompatibler Elemente reagieren. Empfohlenes Lernen: „ “ Das obige ist der detaillierte Inhalt vonWie React-DND Drag & Drop implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!/*
* @Author: muge
* @Date: 2021-12-07 14:26:08
* @LastEditors: Please set LastEditors
* @LastEditTime: 2021-12-08 14:18:52
*/
import { useDrag } from 'react-dnd';
const ItemTypes = {
BOX: 'box',
};
const style = {
border: '1px dashed gray',
backgroundColor: 'white',
padding: '0.5rem 1rem',
marginRight: '1rem',
marginBottom: '1rem',
cursor: 'move',
};
const SourceBox = ({ item, setCurrentList }: any) => {
const [{ opacity }, drag] = useDrag(
() => ({
type: ItemTypes.BOX,
collect: (monitor) => ({
opacity: monitor.isDragging() ? 0.4 : 1,
}),
item: () => item, //返回当前列表项数据
canDrag: (monitor) => {
//是否取消拖拽
console.log(monitor, 'monitor131');
return true;
},
//
end(currentItem, monitor) {
// monitor.getDropResult(); //获取拖拽对象所处容器的数据
// monitor.didDrop(); // 当前容器能否放置拖拽对象 拖动停止时触发
monitor.didDrop() && setCurrentList(currentItem); //在容器点松开 才赋值
},
}),
[],
);
return (
<div ref={drag} style={{ ...style, opacity }}>
{item.id}------{item.name}
</div>
);
};
export default SourceBox;

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





So erstellen Sie eine Echtzeit-Chat-Anwendung mit React und WebSocket Einführung: Mit der rasanten Entwicklung des Internets hat die Echtzeitkommunikation immer mehr Aufmerksamkeit auf sich gezogen. Live-Chat-Apps sind aus dem modernen Sozial- und Arbeitsleben nicht mehr wegzudenken. In diesem Artikel wird erläutert, wie Sie mit React und WebSocket eine einfache Echtzeit-Chat-Anwendung erstellen, und es werden spezifische Codebeispiele bereitgestellt. 1. Technische Vorbereitung Bevor wir mit der Erstellung einer Echtzeit-Chat-Anwendung beginnen, müssen wir die folgenden Technologien und Tools vorbereiten: React: eine zum Erstellen

React-Leitfaden zur Front-End- und Back-End-Trennung: So erreichen Sie die Front-End- und Back-End-Entkopplung und die unabhängige Bereitstellung. Es sind spezifische Codebeispiele erforderlich. In der heutigen Webentwicklungsumgebung ist die Front-End- und Back-End-Trennung zu einem Trend geworden. Durch die Trennung von Front-End- und Back-End-Code kann die Entwicklungsarbeit flexibler und effizienter gestaltet und die Zusammenarbeit im Team erleichtert werden. In diesem Artikel wird erläutert, wie Sie mithilfe von React eine Front-End- und Back-End-Trennung erreichen und so die Ziele der Entkopplung und unabhängigen Bereitstellung erreichen. Zuerst müssen wir verstehen, was Front-End- und Back-End-Trennung ist. Im traditionellen Webentwicklungsmodell sind Front-End und Back-End gekoppelt

So erstellen Sie mit React und Flask einfache und benutzerfreundliche Webanwendungen. Einführung: Mit der Entwicklung des Internets werden die Anforderungen an Webanwendungen immer vielfältiger und komplexer. Um den Anforderungen der Benutzer an Benutzerfreundlichkeit und Leistung gerecht zu werden, wird es immer wichtiger, moderne Technologie-Stacks zum Aufbau von Netzwerkanwendungen zu verwenden. React und Flask sind zwei sehr beliebte Frameworks für die Front-End- und Back-End-Entwicklung, und sie arbeiten gut zusammen, um einfache und benutzerfreundliche Webanwendungen zu erstellen. In diesem Artikel erfahren Sie, wie Sie React und Flask nutzen

So erstellen Sie eine zuverlässige Messaging-Anwendung mit React und RabbitMQ Einführung: Moderne Anwendungen müssen zuverlässiges Messaging unterstützen, um Funktionen wie Echtzeitaktualisierungen und Datensynchronisierung zu erreichen. React ist eine beliebte JavaScript-Bibliothek zum Erstellen von Benutzeroberflächen, während RabbitMQ eine zuverlässige Messaging-Middleware ist. In diesem Artikel wird erläutert, wie Sie React und RabbitMQ kombinieren, um eine zuverlässige Messaging-Anwendung zu erstellen, und es werden spezifische Codebeispiele bereitgestellt. RabbitMQ-Übersicht:

React-Code-Debugging-Leitfaden: So finden und beheben Sie Front-End-Fehler schnell. Einführung: Bei der Entwicklung von React-Anwendungen stoßen Sie häufig auf eine Vielzahl von Fehlern, die zum Absturz der Anwendung oder zu fehlerhaftem Verhalten führen können. Daher ist die Beherrschung von Debugging-Fähigkeiten eine wesentliche Fähigkeit für jeden React-Entwickler. In diesem Artikel werden einige praktische Techniken zum Auffinden und Beheben von Front-End-Fehlern vorgestellt und spezifische Codebeispiele bereitgestellt, um Lesern dabei zu helfen, Fehler in React-Anwendungen schnell zu finden und zu beheben. 1. Auswahl der Debugging-Tools: In Re

ReactRouter-Benutzerhandbuch: So implementieren Sie die Front-End-Routing-Steuerung Mit der Popularität von Single-Page-Anwendungen ist das Front-End-Routing zu einem wichtigen Bestandteil geworden, der nicht ignoriert werden kann. Als beliebteste Routing-Bibliothek im React-Ökosystem bietet ReactRouter umfangreiche Funktionen und benutzerfreundliche APIs, wodurch die Implementierung des Front-End-Routings sehr einfach und flexibel ist. In diesem Artikel wird die Verwendung von ReactRouter vorgestellt und einige spezifische Codebeispiele bereitgestellt. Um ReactRouter zuerst zu installieren, benötigen wir

So verwenden Sie React und Google BigQuery zum Erstellen schneller Datenanalyseanwendungen. Einführung: Im heutigen Zeitalter der Informationsexplosion ist die Datenanalyse zu einem unverzichtbaren Bindeglied in verschiedenen Branchen geworden. Unter anderem ist die Entwicklung schneller und effizienter Datenanalyseanwendungen für viele Unternehmen und Einzelpersonen zum Ziel geworden. In diesem Artikel wird erläutert, wie Sie mit React und Google BigQuery eine schnelle Datenanalyseanwendung erstellen, und es werden detaillierte Codebeispiele bereitgestellt. 1. Übersicht React ist ein Werkzeug zum Erstellen

So verwenden Sie React und Apache Kafka zum Erstellen von Echtzeit-Datenverarbeitungsanwendungen. Einführung: Mit dem Aufkommen von Big Data und Echtzeit-Datenverarbeitung ist die Erstellung von Echtzeit-Datenverarbeitungsanwendungen für viele Entwickler zum Ziel geworden. Die Kombination von React, einem beliebten Front-End-Framework, und Apache Kafka, einem leistungsstarken verteilten Messaging-System, kann uns beim Aufbau von Echtzeit-Datenverarbeitungsanwendungen helfen. In diesem Artikel wird erläutert, wie Sie mit React und Apache Kafka Echtzeit-Datenverarbeitungsanwendungen erstellen
