واجهة تحميل الملفات بالسحب والإفلات
أنشئوا منطقة للسحب والإفلات باستخدام أحداث onDragOver/onDrop والتغذية الراجعة المرئية
واجهة تحميل الملفات بالسحب والإفلات درس مجاني في React Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في 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/*': [] },
});تحقق سريع
مراجعة
التالي
الأسئلة الشائعة
هل درس «واجهة تحميل الملفات بالسحب والإفلات» مجاني؟
نعم — نص درس «واجهة تحميل الملفات بالسحب والإفلات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة React Academy، انتقل إلى CoddyKit PRO. تتضمن دورة React Academy 4 دروس في المجموع.
ماذا ستتعلم في «واجهة تحميل الملفات بالسحب والإفلات»؟
أنشئوا منطقة للسحب والإفلات باستخدام أحداث onDragOver/onDrop والتغذية الراجعة المرئية تتمرن على React Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ React Academy؟
لا تُشترط خبرة سابقة. React Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «واجهة تحميل الملفات بالسحب والإفلات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس React Academy هذا؟
نعم. كل درس في React Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- المدخلات غير المتحكَّم بها باستخدام useRef
- إدخال الملفات وقراءة بياناتها
- واجهة تحميل الملفات بالسحب والإفلات
- رفع الملفات إلى واجهة برمجة خلفية