JSX Syntax পাঠ ইতিমধ্যে HTML থেকে দুটো প্রধান পার্থক্য উল্লেখ করেছে: ইভেন্টের নাম camelCase, আর একটি স্ট্রিং-এর বদলে একটি প্রকৃত ফাংশন নেয়।
function Button() {
function handleClick() {
alert('Button clicked!');
}
return <button onClick={handleClick}>Click me</button>;
}ফাংশন পাস করুন, কল করবেন না
onClick={handleClick()} — বন্ধনীসহ — ফাংশনটি ক্লিক করার সময় নয়, render-এর সময় সাথে সাথে কল করে, আর এটি যা রিটার্ন করে (সাধারণত undefined) তা হ্যান্ডলার হিসেবে পাস করে। ফাংশনটি নিজেই পাস করুন: onClick={handleClick}।
একটি আর্গুমেন্ট প্রয়োজন এমন একটি হ্যান্ডলারের জন্য, হ্যান্ডলারটি সাথে সাথে কল না করে একটি পাস করার প্রচলিত উপায় একটি ইনলাইন অ্যারো ফাংশন:
function FruitList({ fruits, onSelect }) {
return (
<ul>
{fruits.map((fruit) => (
<li key={fruit} onClick={() => onSelect(fruit)}>
{fruit}
</li>
))}
</ul>
);
}React প্রতিটি হ্যান্ডলারে একটি synthetic event পাস করে — নেটিভ ব্রাউজার ইভেন্টের চারপাশে একটি ক্রস-ব্রাউজার wrapper, JavaScript Events পাঠ থেকে ইতিমধ্যে জানা একই পরিচিত প্রপার্টি আর মেথডসহ:
function Form() {
function handleSubmit(e) {
e.preventDefault(); // same method, same purpose, as plain JS
console.log('Submitted');
}
return <form onSubmit={handleSubmit}><button type="submit">Send</button></form>;
}| প্রপ | কখন ফায়ার করে |
|---|---|
| onClick | একটি এলিমেন্ট ক্লিক করা হলে |
| onChange | একটি input-এর মান বদলালে |
| onSubmit | একটি ফর্ম সাবমিট হলে |
| onMouseEnter / onMouseLeave | পয়েন্টার একটি এলিমেন্টে ঢোকা বা বের হওয়া |
| onKeyDown | একটি কী চাপা হলে |
এর ঠিক পরের Forms in React পাঠে onChange আর onSubmit সত্যিকারভাবে ব্যবহার করা হবে।