Welcome to the React Project Structure tutorial! In this lesson, we'll dive into the anatomy of a React project, understand its essential components, and explore real-world examples. By the end of this tutorial, you'll have a solid understanding of how to structure your React projects effectively.
Let's kick things off by creating a new React project using create-react-app.
npx create-react-app my-react-appUpon creating a new React project, you'll find that the project structure is quite organized and follows a specific pattern:
my-react-app/
node_modules/
public/
index.html
favicon.ico
src/
App.css
App.js
App.test.js
index.css
index.js
logo.svg
serviceWorker.js
.gitignore
package.json
README.md
Let's take a closer look at each folder and file:
node_modules/This folder contains all the dependencies for your React project. You should generally avoid modifying its contents.
public/The public folder contains static files that can be accessed directly from the browser, such as index.html, favicon.ico, and logo.svg.
src/The source folder is where all your application's source code resides. The key files and folders within src/ are:
App.css and App.js: These files contain the main component of your application. App.js is the entry point of your React application, and App.css styles the components defined within App.js.index.css: This file styles the root div with the class root and can be used to apply global styles to your application.index.js: This file initializes your React application by rendering the App component.logo.svg: A logo for your application.serviceWorker.js: A service worker that helps with caching your application for offline use..gitignore: A file containing a list of files and directories to ignore for Git version control.package.json: A file that contains information about your project, including its dependencies and scripts.README.md: A file containing information about your project, such as installation instructions and usage.React is all about components. A React component is a reusable piece of code that renders a view, which can be a simple HTML tag or a complex UI. You can divide your application into smaller, reusable components to make it more manageable and easier to test and maintain.
Here's a simple example of a Greeting component:
import React from 'react';
const Greeting = () => {
return (
<h1>Hello, World!</h1>
);
};
export default Greeting;You can use the Greeting component in your App component:
import React from 'react';
import Greeting from './Greeting';
function App() {
return (
<div className="App">
<Greeting />
</div>
);
}
export default App;React components can have a state, which is an object that stores the component's data. You can update the state to trigger a re-render of the component.
Here's an example of a Counter component that keeps track of its own state:
import React, { useState } from 'react';
const Counter = () => {
const [count, setCount] = useState(0);
const incrementCount = () => {
setCount(count + 1);
};
return (
<div>
<p>Count: {count}</p>
<button onClick={incrementCount}>Increment</button>
</div>
);
};
export default Counter;React components can also receive data from their parent components using props. Props are immutable and are passed from a parent component to a child component.
Here's an example of a Greeting component that accepts a prop:
import React from 'react';
const Greeting = ({ name }) => {
return (
<h1>Hello, {name}!</h1>
);
};
export default Greeting;And here's an example of using the Greeting component with a prop:
import React from 'react';
import Greeting from './Greeting';
function App() {
const name = 'World';
return (
<div className="App">
<Greeting name={name} />
</div>
);
}
export default App;What is the main entry point of a React application?
That's it for this lesson on React Project Structure! In the next lesson, we'll dive into more advanced topics like React Router, Forms, and State Management. đī¸đī¸
Happy coding! đģī¸đī¸