Entry Point Configuration
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(<App />, document.getElementById('app'));
Main Application Component
import React from 'react';
import Home from './Home';
export default function App() {
return (
<div>
<Home />
</div>
);
}
State Management with useState Hook
import React, { useState } from 'react';
const Counter = () => {
const [counterValue, updateCounter] = useState(0);
const [dataItems, setDataItems] = useState([10, 20, 30, 40]);
return (
<div>
<button onClick={() => updateCounter(counterValue + 1)}>
Increment
</button>
<span>{counterValue}</span>
<button onClick={() => setDataItems([50, 60, 70, 80])}>
Update List
</button>
{dataItems.map((element, idx) => (
<div key={idx}>{element}</div>
))}
</div>
);
};
export default Counter;
Side Effects with useEffect Hook
import React, { useState, useEffect } from 'react';
import axios from 'axios';
const DataComponent = () => {
const [carouselData, setCarouselData] = useState([]);
const [productData, setProductData] = useState([]);
useEffect(() => {
axios.get('/api/carousel').then(response => {
setCarouselData(response.data.data);
});
});
useEffect(() => {
axios.get('/api/products').then(response => {
setProductData(response.data.data);
});
});
return (
<div>
Carousel Items:
{carouselData.map(item => (
<div key={item.id}>{item.imageUrl}</div>
))}
Product List:
{productData.map(product => (
<div key={product.id}>{product.name}</div>
))}
</div>
);
};
export default DataComponent;
Condisional Effect Executino
import React, { useState, useEffect } from 'react';
import axios from 'axios';
const ControlledEffects = () => {
const [carouselItems, setCarouselItems] = useState([]);
const [products, setProducts] = useState([]);
useEffect(() => {
axios.get('/api/carousel').then(response => {
setCarouselItems(response.data.data);
});
}, [carouselItems]);
useEffect(() => {
axios.get('/api/products').then(response => {
setProducts(response.data.data);
});
}, []);
return (
<div>
{carouselItems.map(item => (
<div key={item.id}>{item.imageUrl}</div>
))}
{products.map(product => (
<div key={product.id}>{product.name}</div>
))}
</div>
);
};
export default ControlledEffects;
Custom Hook Implementation
import React, { useState, useEffect } from 'react';
const useAuthStatus = () => {
const [authState, setAuthState] = useState('unauthorized');
useEffect(() => {
if (localStorage.getItem('authToken') === 'valid') {
setAuthState('authorized');
} else {
setAuthState('unauthorized');
}
}, [authState]);
return authState;
};
const AuthComponent = () => {
const authStatus = useAuthStatus();
return (
<div>
{authStatus === 'authorized' ? (
<p>Authenticated User</p>
) : (
<p>Please Log In</p>
)}
</div>
);
};
export default AuthComponent;