معالجة الأحداث
في React نكتب اسم الحدث بصيغة camelCase ونمرّر له دالة (لا استدعاءً):
function Button() {
function handleClick() {
alert("تم الضغط!");
}
return <button onClick={handleClick}>اضغطني</button>;
}
💡 نمرّر
handleClick(بلا أقواس). لو كتبناhandleClick()ستُنفَّذ فورًا عند الرسم، وهذا خطأ شائع.
الأحداث الشائعة
| الحدث | متى يقع |
|---|---|
onClick | عند النقر |
onChange | عند تغيّر قيمة حقل |
onSubmit | عند إرسال نموذج |
onMouseEnter | عند مرور الفأرة |
الحقول المتحكَّم بها (Controlled Inputs)
نربط قيمة الحقل بالحالة، فيصبح React هو "مصدر الحقيقة":
import { useState } from "react";
function NameForm() {
const [name, setName] = useState("");
return (
<div>
<input value={name} onChange={(e) => setName(e.target.value)} />
<p>مرحبًا {name}</p>
</div>
);
}
value={name}يربط الحقل بالحالة.onChangeيحدّث الحالة عند كل ضغطة مفتاح.e.target.valueهو النص الذي كتبه المستخدم.
🎯 التالي: عرض القوائم والمفاتيح (keys).