ドラッグ&ドロップによるファイルアップロードUI
onDragOver/onDropイベントと視覚的なフィードバックを使って、ドラッグ&ドロップ領域を構築します
「ドラッグ&ドロップによるファイルアップロードUI」はCoddyKit上の無料React Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはReact Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 React Academyコースには全4レッスンが含まれています。
ようこそ
ドラッグイベントの概要
デフォルト動作の防止
const handleDragOver = (e) => {
e.preventDefault();
};
const handleDrop = (e) => {
e.preventDefault();
const files = Array.from(e.dataTransfer.files);
// process files
};アクティブ状態の表示
const [isDragging, setIsDragging] = useState(false);
<div
className={isDragging ? 'zone active' : 'zone'}
onDragOver={(e) => { e.preventDefault(); setIsDragging(true); }}
onDragLeave={() => setIsDragging(false)}
onDrop={handleDrop}
>ドロップされたファイルの読み取り
const handleDrop = (e) => {
e.preventDefault();
setIsDragging(false);
const files = Array.from(e.dataTransfer.files);
setSelectedFiles(files);
};クリック選択との組み合わせ
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))}
/>ファイルプレビューの表示
アップロード前のファイル削除
const removeFile = (index) =>
setSelectedFiles(files => files.filter((_, i) => i !== index));dragenter と dragover の違い
サードパーティーライブラリ
import { useDropzone } from 'react-dropzone';
const { getRootProps, getInputProps, isDragActive } = useDropzone({
onDrop: acceptedFiles => setFiles(acceptedFiles),
accept: { 'image/*': [] },
});理解度チェック
まとめ
次のレッスン
よくある質問
「ドラッグ&ドロップによるファイルアップロードUI」レッスンは無料ですか?
はい。「ドラッグ&ドロップによるファイルアップロードUI」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、React Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 React Academyコースには全4レッスンが含まれています。
「ドラッグ&ドロップによるファイルアップロードUI」で何を学びますか?
onDragOver/onDropイベントと視覚的なフィードバックを使って、ドラッグ&ドロップ領域を構築します ブラウザで直接実行するハンズオンコードでReact Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
React Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのReact Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「ドラッグ&ドロップによるファイルアップロードUI」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このReact Academyレッスンでコードを書いて実行できますか?
はい。すべてのReact Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- useRefによる非制御入力
- ファイル入力とファイルデータの読み取り
- ドラッグ&ドロップによるファイルアップロードUI
- バックエンドAPIへのファイルアップロード