लोड हो रहा है...

Hooks संदर्भ

React Hooks संदर्भ आधुनिक रिएक्ट (React) विकास में एक महत्वपूर्ण टूलकिट है, जो डेवलपर्स को functional components में state और lifecycle management की सुविधा देता है। Hooks का मुख्य उद्देश्य class components की जटिलताओं को कम करना और component logic को अधिक modular और reusable बनाना है। useState, useEffect, useReducer, useMemo, useCallback, useContext जैसे Hooks functional components को interactive, efficient और maintainable बनाते हैं।
Hooks का उपयोग तब किया जाता है जब आपको component के अंदर local state या side effects की आवश्यकता होती है। वे data flow और component lifecycle को साफ और predictable बनाते हैं। SPA (Single Page Applications) में Hooks का प्रयोग user interactions, API calls, performance optimization, और component reusability के लिए बेहद उपयोगी है।
इस संदर्भ में आप सीखेंगे कि कैसे core React concepts जैसे components, state management, data flow और lifecycle Hooks के माध्यम से implement किए जाते हैं। साथ ही, common pitfalls जैसे prop drilling, unnecessary re-renders और state mutations से कैसे बचा जाए, यह भी बताया गया है। यह संदर्भ आपको advanced level के Hooks implementation, reusable component patterns और enterprise-ready React projects के लिए best practices समझने में मदद करेगा।

मूल उदाहरण

jsx
JSX Code
import React, { useState, useEffect } from 'react';

function Counter() {
const [count, setCount] = useState(0);

useEffect(() => {
document.title = `Count: ${count}`;
console.log('Component updated:', count);
}, [count]);

const increment = () => setCount(prev => prev + 1);
const decrement = () => setCount(prev => prev - 1);

return (
<div style={{ textAlign: 'center', padding: '20px' }}> <h2>React Hook Counter</h2> <p>Current Count: {count}</p> <button onClick={decrement}>-</button> <button onClick={increment}>+</button> </div>
);
}

export default Counter;

उपरोक्त उदाहरण में useState Hook local state "count" को manage करता है। setCount के उपयोग से state update होती है और component re-render होता है। useEffect Hook side effects को handle करता है – जैसे document title update और console logging।
Dependency array [count] सुनिश्चित करता है कि useEffect केवल तब execute हो जब count बदलता है, जिससे unnecessary re-renders रोके जाते हैं। यह functional components में class lifecycle methods जैसे componentDidMount और componentDidUpdate को replace करता है।
यह component best practices को follow करता है: state को immutable रखा गया है, logic साफ और readable है, और prop drilling से बचा गया है। यह Hooks की मदद से reusable और maintainable component design को demonstrate करता है।

व्यावहारिक उदाहरण

jsx
JSX Code
import React, { useState, useEffect, useMemo } from 'react';

function FilteredList({ items }) {
const [search, setSearch] = useState('');

const filteredItems = useMemo(() => {
return items.filter(item =>
item.toLowerCase().includes(search.toLowerCase())
);
}, [items, search]);

useEffect(() => {
console.log('Filtered items count:', filteredItems.length);
}, [filteredItems]);

return ( <div> <h3>Filtered List using Hooks</h3>
<input
type="text"
placeholder="Filter..."
value={search}
onChange={e => setSearch(e.target.value)}
/> <ul>
{filteredItems.map((item, index) => ( <li key={index}>{item}</li>
))} </ul> </div>
);
}

export default FilteredList;

Advanced रिएक्ट (React) Implementation

jsx
JSX Code
import React, { useReducer, useEffect, useCallback } from 'react';

function dataReducer(state, action) {
switch (action.type) {
case 'INIT':
return { ...state, loading: true, error: false };
case 'SUCCESS':
return { ...state, loading: false, data: action.payload };
case 'ERROR':
return { ...state, loading: false, error: true };
default:
return state;
}
}

function useFetchData(url) {
const [state, dispatch] = useReducer(dataReducer, {
data: [],
loading: false,
error: false,
});

const fetchData = useCallback(async () => {
dispatch({ type: 'INIT' });
try {
const response = await fetch(url);
const result = await response.json();
dispatch({ type: 'SUCCESS', payload: result });
} catch {
dispatch({ type: 'ERROR' });
}
}, [url]);

useEffect(() => {
fetchData();
}, [fetchData]);

return state;
}

function DataDisplay() {
const { data, loading, error } = useFetchData('[https://jsonplaceholder.typicode.com/posts](https://jsonplaceholder.typicode.com/posts)');

if (loading) return <p>Loading data...</p>;
if (error) return <p>Error fetching data.</p>;

return ( <div> <h3>Data Loaded via Hook</h3> <ul>
{data.slice(0, 10).map(item => ( <li key={item.id}>{item.title}</li>
))} </ul> </div>
);
}

export default DataDisplay;

React Hooks best practices में reusable logic को encapsulate करने के लिए Custom Hooks का निर्माण, state की immutable updates, और unnecessary re-renders को रोकना शामिल है। Prop drilling को avoid करने के लिए Context API या Custom Hooks का उपयोग किया जा सकता है।

📊 संपूर्ण संदर्भ

रिएक्ट (React) Element/Method Description Syntax Example Notes
useState Local state manage करता है const [value, setValue] = useState(initial) useState(0) State update triggers re-render
useEffect Side effects handle करता है useEffect(callback, deps) useEffect(()=>{}, [deps]) Runs after render
useContext Context access करता है useContext(Context) const user = useContext(UserContext) Avoids prop drilling
useReducer Complex state manage करता है const [state, dispatch] = useReducer(reducer, init) useReducer(reducerFn, {}) State machine handling
useMemo Memoizes computed values useMemo(fn, deps) useMemo(()=>calc(a,b), [a,b]) Prevents unnecessary computations
useCallback Memoizes functions useCallback(fn, deps) useCallback(()=>handle(), [deps]) Prevents child re-renders
useRef DOM or persistent values access const ref = useRef(initial) ref.current.focus() Does not trigger re-render
useLayoutEffect Pre-paint effect useLayoutEffect(callback, deps) useLayoutEffect(()=>{}, [deps]) DOM sync
useImperativeHandle Customize ref useImperativeHandle(ref, createHandle) useImperativeHandle(ref, ()=>({...})) With forwardRef
useDebugValue Debug info useDebugValue(value) useDebugValue('Active') Visible in DevTools

📊 Complete रिएक्ट (React) Properties Reference

Property Values Default Description रिएक्ट (React) Support
StrictMode boolean false Warns about potential problems 16.8+
Suspense Component null Lazy loading 16.6+
lazy Function null Dynamic import 16.6+
memo Function null Memoizes components 16.8+
Profiler Function null Performance measurement 16.9+
Fragment JSX grouping none Groups elements 16.2+
forwardRef Function null Forwards refs 16.3+
Children Utility null Manipulate children 16.0+
cloneElement Function null Clone element with new props 16.0+
createContext Function null Create context 16.3+
createRef Function null Create ref objects 16.3+

संक्षेप और अगले कदम
Hooks संदर्भ React में functional components के लिए state, effects और lifecycle management को modular और reusable बनाता है। इसके mastery से scalable, maintainable और testable architectures बनती हैं।
अगले कदम में Custom Hooks बनाना, Context API का उपयोग, Profiler के माध्यम से performance measure करना, Suspense और server components को integrate करना शामिल हैं। यह Hooks patterns redundancy घटाने, performance सुधारने और professional React development के लिए आवश्यक है।

🧠 अपने ज्ञान की परीक्षा करें

शुरू करने के लिए तैयार

अपने ज्ञान की परीक्षा करें

इस इंटरैक्टिव क्विज़ के साथ अपनी चुनौती लें और देखें कि आप विषय को कितनी अच्छी तरह समझते हैं

4
प्रश्न
🎯
70%
पास करने के लिए
♾️
समय
🔄
प्रयास

📝 निर्देश

  • हर प्रश्न को ध्यान से पढ़ें
  • हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
  • आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
  • आपकी प्रगति शीर्ष पर दिखाई जाएगी