React Project की Folder Structure
In this page:
एक Typical src Folder Layout
ज़्यादातर React projects src/ को components/ (reusable UI pieces), pages/ (route से जुड़े top-level views), और hooks/ (custom hooks) जैसे subfolders में organize करते हैं -- हालांकि exact layout project size के साथ बदलता है।
उदाहरण: A Typical src Folder Layout
<!DOCTYPE html>
<html>
<head>
<script src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
function Button({ label, onClick }) {
return <button onClick={onClick}>{label}</button>;
}
function App() {
const [count, setCount] = React.useState(0);
return (
<div>
<h2>Component from src/components/Button.jsx</h2>
<Button label={`Clicked ${count} times`} onClick={() => setCount(count + 1)} />
</div>
);
}
ReactDOM.createRoot(document.getElementById('root')).render(<App />);
</script>
</body>
</html>
Related Files को Colocate करना
एक common pattern है एक component की JSX, styles, और tests को एक ही folder में रखना (जैसे Button/Button.jsx, Button/Button.css, Button/Button.test.js) ताकि UI के उस piece से related सब कुछ एक साथ रहे।
उदाहरण: Colocating Related Files
<!DOCTYPE html>
<html>
<head>
<script src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
// Button/Button.jsx and Button/Button.css live in the same folder
function Button() {
return (
<div>
<style>{`.btn { background: #4a90d9; color: white; padding: 8px 16px; border: none; }`}</style>
<button className="btn">Colocated Button</button>
</div>
);
}
ReactDOM.createRoot(document.getElementById('root')).render(<Button />);
</script>
</body>
</html>
Files के लिए Naming Conventions
Component files आमतौर पर उनके component से match करने के लिए named होती हैं (Header.jsx Header export करता है), filename के लिए PascalCase उपयोग करते हुए बिल्कुल component के नाम की तरह।
उदाहरण: Naming Conventions for Files
<!DOCTYPE html>
<html>
<head>
<script src="https://unpkg.com/react@18/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
</head>
<body>
<div id="root"></div>
<script type="text/babel">
// Header.jsx -- PascalCase filename matches the PascalCase component
function Header() {
return <h2>My Site</h2>;
}
// App.jsx
// import Header from './Header';
function App() {
return <Header />;
}
ReactDOM.createRoot(document.getElementById('root')).render(<App />);
</script>
</body>
</html>
- Project बढ़ने पर सभी components को किसी organization के बिना एक giant folder में डंप करना।
- यह न जानना कि
publicfolder की files as-is serve होती हैं,srcकी files के विपरीत। - असली source files के बजाय directly
node_modulesedit करना।
src/आपके application का source code रखता है -- components, styles, और logic।public/static files रखता है जो as-is serve होती हैं, जैसे HTML shell और favicon।node_modules/installed dependencies रखता है और इसे कभी directly edit नहीं करना चाहिए।package.jsondependencies list करता है और project के लिए npm scripts define करता है।
Applicable नहीं -- project structure एक development-time convention है, कोई runtime concern नहीं।
Chapter Quiz — Complete all 10 topics to unlock
0/10 topics done
Complete these topics first: