📝 دليل شامل لاستخدام Textarea في React للمبتدئين
Textarea هو عنصر HTML يستخدم لإنشاء حقول إدخال نصية متعددة الأسطر. في React، يمكننا التعامل مع Textarea كعنصر تحكم (Controlled Component) لإدارة بيانات المستخدم بشكل فعال.
🎯 ما هو عنصر Textarea؟
Textarea يسمح للمستخدمين بإدخال نصوص طويلة أو متعددة الأسطر في نماذج الويب. على عكس حقل الإدخال العادي (<input type="text">) الذي يكون لسطر واحد فقط.
// مثال بسيط لـ Textarea
<textarea
rows={4}
cols={50}
placeholder="اكتب رسالتك هنا..."
/>
🔧 إنشاء Textarea أساسي في React
لإنشاء Textarea في React، نستخدم الوسم <textarea> مع بعض الخصائص الأساسية:
function MessageForm() {
return (
<div>
<h3>اترك رسالتك</h3>
<textarea
rows={5}
cols={40}
placeholder="اكتب رسالتك هنا..."
/>
</div>
);
}
🎮 إدارة حالة Textarea مع useState
لجعل Textarea عنصراً متحكماً، نستخدم useState لإدارة قيمته:
import { useState } from 'react';
function ContactForm() {
const [message, setMessage] = useState('');
const handleChange = (event) => {
setMessage(event.target.value); // تحديث الحالة بالقيمة الجديدة
};
return (
<textarea
value={message}
onChange={handleChange}
rows={6}
cols={50}
placeholder="ما الذي تريد قوله؟"
/>
);
}
📋 خصائص Textarea الشائعة
<textarea
value={message}
onChange={handleChange}
rows={8} // عدد الأسطر الظاهرة
cols={60} // عدد الأعمدة
placeholder="اكتب هنا..." // نص تلميحي
disabled={false} // تعطيل الحقل
required={true} // إلزامية الحقل
maxLength={500} // الحد الأقصى للحروف
/>
🎪 التعامل مع أحداث Textarea
يمكننا التعامل مع مختلف الأحداث الخاصة بـ Textarea:
function SmartTextarea() {
const [text, setText] = useState('');
const handleInput = (event) => {
console.log('المستخدم يكتب:', event.target.value);
};
const handleBlur = () => {
console.log('ترك المستخدم حقل النص');
};
return (
<textarea
value={text}
onChange={(e) => setText(e.target.value)}
onInput={handleInput}
onBlur={handleBlur}
onFocus={() => console.log('حصل الحقل على التركيز')}
rows={4}
cols={50}
/>
);
}
💡 نصائح عملية لاستخدام Textarea
- استخدم placeholder لتوجيه المستخدم لما يجب كتابته
- حدد rows وcols لمناسب لحجم النص المتوقع
- استخدم maxLength لمنع إدخال نصوص طويلة جداً
- أضف validation للتحقق من صحة البيانات المدخلة
function ValidatedTextarea() {
const [comment, setComment] = useState('');
const maxLength = 200;
return (
<div>
<textarea
value={comment}
onChange={(e) => setComment(e.target.value)}
rows={4}
cols={50}
maxLength={maxLength}
placeholder={`اكتب تعليقك (بحد أقصى ${maxLength} حرف)`}
/>
<p>عدد الأحرف: {comment.length}/{maxLength}</p>
</div>
);
}
🚀 ماذا سنتعلم في الدرس القادم؟
في الدرس التالي، سنتعلم كيفية إنشاء نماذج متكاملة في React باستخدام multiple inputs وكيفية إدارة حالة عدة حقول إدخال في وقت واحد، بما في ذلك Textarea وحقول الإدخال الأخرى بشكل منسق وفعال.
🎓 اختبر معلوماتك
التعليقات
شاركنا رأيك أو أسئلتك حول هذا المقال