1. Synthetic Events
Synthetic Events kya hain? React apne khud ke event system use karta hai jo browser ke native events ko wrap karta hai. Isko SyntheticEvent kehte hain.
Kyun use karte hain? Cross-browser compatibility ke liye. Sabhi browsers mein same behavior milta hai.
Important Properties
| Property | Description |
|---|---|
e.target |
Jis element pe click hua woh (actual element) |
e.currentTarget |
Jis element pe event listener laga hai woh |
e.preventDefault() |
Default behavior ko rok deta hai |
e.stopPropagation() |
Event bubbling ko rok deta hai |
2. Event Binding
Event Binding matlab event handlers ko component ke saath connect karna. React mein events ko camelCase mein likhte hain jaise onClick, onChange, etc.
3. Controlled vs Uncontrolled Components
| Aspect | Controlled Components | Uncontrolled Components |
|---|---|---|
| Data Source | React state se control hota hai | DOM khud manage karta hai |
| Value Access | State se directly milta hai | Ref use karke DOM se lena padta hai |
| Validation | Real-time validation easy hai | Submit time pe hi validate kar sakte hain |
| Usage | Most cases mein recommended | Simple forms ya file inputs ke liye |
Controlled Component Demo
Character Count: 0
Uncontrolled Component Demo
4. Form Validation Patterns
Form Validation zaroori hai taaki user correct data enter kare. Validation teen types ka hota hai:
- Client-side validation: Browser mein hi check karo
- Real-time validation: Har keystroke pe validate karo
- Submit-time validation: Form submit hone pe check karo
5. Input Management for Large Forms
Large forms manage karna challenging ho sakta hai. Har input ke liye alag state banana efficient nahi hai. Solution: Ek single object mein saare values rakhna.
6. Handling Checkboxes, Radios & Selects
Checkboxes
Radio Buttons
Select Dropdown
7. Reusable Input Components
Reusable components banane se code DRY (Don't Repeat Yourself) rehta hai. Ek baar component banao aur kahin bhi use karo!
8. Formik + Yup Introduction
Formik ek popular library hai jo forms ko manage karne mein madad karti hai. Yeh boilerplate code ko kam kar deti hai.
Yup ek schema validation library hai jo Formik ke saath bahut achhe se kaam karti hai.
Why Use Formik?
- ✅ Form state management automatic
- ✅ Validation ko simple bana deta hai
- ✅ Error handling built-in hai
- ✅ Less code likhna padta hai
- ✅ Form submission ko handle karna easy hai
Yup Validation Schema
🎯 Interview Questions
Q1: What are Synthetic Events in React? Why are they used? Easy
Key Points:
- Cross-browser compatibility ensure karta hai
- Event pooling ke through performance optimize karta hai
- Same API milta hai har browser mein
- Native event ko wrap karke consistent interface deta hai
Q2: Controlled vs Uncontrolled Components mein kya difference hai? Medium
Controlled Components:
- React state input ki value ko control karta hai
- Har change pe state update hota hai
- Real-time validation easy hai
- Example:
<input value={state} onChange={handler} />
- DOM khud data manage karta hai
- Ref use karke value access karte hain
- Simple forms ke liye suitable
- Example:
<input ref={inputRef} />
Q3: How do you handle multiple inputs in a single onChange handler? Medium
const [formData, setFormData] = useState({name: '', email: ''});
const handleChange = (e) => {
const {name, value} = e.target;
setFormData(prev => ({...prev, [name]: value}));
};
<input name="name" onChange={handleChange} />
<input name="email" onChange={handleChange} />
Benefits: Less code, scalable, aur easy to maintain.
Q4: What is event bubbling and how do you stop it in React? Medium
Stop karne ke tarike:
e.stopPropagation()- Event ko parent tak jane se rokta haie.preventDefault()- Default browser behavior rokta hai
const handleClick = (e) => {
e.stopPropagation(); // Parent handler nahi chalega
console.log('Only child handler runs');
};
Q5: Why is Formik used and what problems does it solve? Easy
Problems it solves:
- State Management: Form values, errors, touched fields automatically manage karta hai
- Validation: Built-in validation support with Yup integration
- Boilerplate: Repetitive code ko reduce karta hai
- Submission: Form submission ko handle karna easy ho jata hai
- Error Handling: Error display aur management built-in hai
With Formik: 15-20 lines code
Q6: How do you validate forms in React? Explain different approaches. Hard
1. Manual Validation:
- Custom validation functions likhna
- onChange ya onSubmit pe validate karna
- Full control milta hai but boilerplate code zyada
- Built-in attributes: required, pattern, min, max
- Quick implementation but limited customization
- Declarative validation rules
- Reusable schemas
- Complex validations easily possible
- Real-time: Har keystroke pe validate (better UX)
- Submit-time: Form submit pe validate (better performance)
- On Blur: Field leave karne pe validate (balanced approach)
Q7: What are the best practices for handling large forms with many inputs? Hard
1. Single State Object:
- Saare form values ek object mein store karo
- Generic onChange handler use karo with computed property names
- Large form ko smaller sections mein divide karo
- Multi-step forms banao with progress indicator
- Lazy loading for better initial load time
- Custom input components banao (FormInput, FormSelect, etc.)
- Validation logic ko centralize karo
- Debouncing for expensive validations
- React.memo() for input components
- useCallback for event handlers
- Field-level validation instead of form-level
- Complex forms ke liye Context API ya Redux use karo
- Form state ko global banana for persistence
- Formik ya React Hook Form for complex scenarios
- Yup for schema validation
🎉 Congratulations!
Aapne React Events aur Forms ki complete understanding gain kar li hai!
Practice karte raho aur real projects mein implement karo! 🚀