Interfaccia di upload con trascinamento
Creare un'area drag-and-drop con gli eventi onDragOver/onDrop e un feedback visivo.
Interfaccia di upload con trascinamento è una lezione React Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento React Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso React Academy include 4 lezioni in totale.
Benvenuto
Panoramica degli eventi di trascinamento
Prevenire il comportamento predefinito
const handleDragOver = (e) => {
e.preventDefault();
};
const handleDrop = (e) => {
e.preventDefault();
const files = Array.from(e.dataTransfer.files);
// process files
};Stato visivo attivo
const [isDragging, setIsDragging] = useState(false);
<div
className={isDragging ? 'zone active' : 'zone'}
onDragOver={(e) => { e.preventDefault(); setIsDragging(true); }}
onDragLeave={() => setIsDragging(false)}
onDrop={handleDrop}
>Leggere i file rilasciati
const handleDrop = (e) => {
e.preventDefault();
setIsDragging(false);
const files = Array.from(e.dataTransfer.files);
setSelectedFiles(files);
};Combinare la selezione tramite clic
const inputRef = useRef();
<div onClick={() => inputRef.current.click()} ...>
Drop files here or click to browse
</div>
<input
ref={inputRef}
type="file"
multiple
hidden
onChange={(e) => setSelectedFiles(Array.from(e.target.files))}
/>Mostrare le anteprime dei file
Rimuovere i file prima del caricamento
const removeFile = (index) =>
setSelectedFiles(files => files.filter((_, i) => i !== index));dragenter e dragover
Librerie di terze parti
import { useDropzone } from 'react-dropzone';
const { getRootProps, getInputProps, isDragActive } = useDropzone({
onDrop: acceptedFiles => setFiles(acceptedFiles),
accept: { 'image/*': [] },
});Verifica rapida
Riepilogo
Prossimo argomento
Domande Frequenti
La lezione «Interfaccia di upload con trascinamento» è gratuita?
Sì — il testo completo di «Interfaccia di upload con trascinamento» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso React Academy, passa a CoddyKit PRO. Il corso React Academy include 4 lezioni in totale.
Cosa imparerò in «Interfaccia di upload con trascinamento»?
Creare un'area drag-and-drop con gli eventi onDragOver/onDrop e un feedback visivo. Eserciti React Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare React Academy?
Non è richiesta alcuna esperienza precedente. React Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Interfaccia di upload con trascinamento»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione React Academy?
Sì. Ogni lezione React Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Input non controllati con useRef
- Input per file e lettura dei dati
- Interfaccia di upload con trascinamento
- Caricamento di file su un'API backend