Introduction to React
React is one of the most popular JavaScript libraries for building user interfaces, particularly single-page applications (SPAs). Developed and maintained by Facebook (now Meta), React allows developers to create reusable UI components, making web development faster and more efficient.
If you’re new to React, this guide will walk you through everything you need to know—from setting up your first React project to understanding core concepts like components, state, and props.
Why Learn React?
- High Demand in the Job Market: React is widely used by companies like Facebook, Netflix, Airbnb, and Instagram.
- Reusable Components: Write once, use multiple times.
- Virtual DOM: Improves performance by minimizing direct DOM manipulation.
- Strong Community Support: Extensive documentation, tutorials, and third-party libraries.
Prerequisites for Learning React
Before diving into React, you should have a basic understanding of:
- HTML & CSS (for structuring and styling web pages)
- JavaScript (ES6+) (including arrow functions, destructuring, modules, and classes)
- Node.js & npm/yarn (for package management)
Setting Up Your First React Project
1. Install Node.js
React requires Node.js to run JavaScript outside the browser. Download and install it from Node.js official website.
2. Create a React App
The easiest way to start a React project is by using Create React App (CRA), a toolchain that sets up a modern React project with zero configuration.
Run the following command in your terminal:
bash
Copy
Download
npx create-react-app my-first-react-app
(Replace my-first-react-app
with your project name.)
3. Navigate to Your Project
bash
Copy
Download
cd my-first-react-app
4. Start the Development Server
bash
Copy
Download
npm start
This will open your React app in the browser at http://localhost:3000
.

Understanding React Project Structure
When you create a React app, you’ll see the following folder structure:
text
Copy
Download
my-first-react-app/ ├── node_modules/ (All dependencies) ├── public/ (Static files like HTML) │ ├── index.html (Main HTML file) │ └── ... ├── src/ (React components & logic) │ ├── App.js (Main React component) │ ├── index.js (Entry point) │ └── ... ├── package.json (Project dependencies) └── ...
Core Concepts of React
1. Components
React applications are built using components—reusable, self-contained pieces of UI.
There are two types of components:
- Functional Components (Written as JavaScript functions)
- Class Components (Written as ES6 classes, less common now)
Example of a Functional Component
jsx
Copy
Download
import React from 'react'; function Greeting() { return <h1>Hello, React!</h1>; } export default Greeting;
Example of a Class Component
jsx
Copy
Download
import React, { Component } from 'react'; class Greeting extends Component { render() { return <h1>Hello, React!</h1>; } } export default Greeting;
2. JSX (JavaScript XML)
JSX is a syntax extension for JavaScript that allows you to write HTML-like code inside JavaScript.
Example:
jsx
Copy
Download
const element = <h1>Hello, JSX!</h1>;
3. Props (Properties)
Props allow you to pass data from parent to child components.
Example:
jsx
Copy
Download
function Welcome(props) { return <h1>Hello, {props.name}</h1>; } // Usage <Welcome name="John" />
4. State
State is used to manage data that changes over time within a component.
Using State in Functional Components (Hooks)
jsx
Copy
Download
import React, { useState } from 'react'; function Counter() { const [count, setCount] = useState(0); return ( <div> <p>Count: {count}</p> <button onClick={() => setCount(count + 1)}>Increment</button> </div> ); }
Using State in Class Components
jsx
Copy
Download
import React, { Component } from 'react'; class Counter extends Component { constructor(props) { super(props); this.state = { count: 0 }; } increment = () => { this.setState({ count: this.state.count + 1 }); }; render() { return ( <div> <p>Count: {this.state.count}</p> <button onClick={this.increment}>Increment</button> </div> ); } }
5. Lifecycle Methods (Class Components) & useEffect (Functional Components)
Lifecycle methods are used in class components to perform actions at different stages of a component’s life (e.g., when it mounts, updates, or unmounts).
In functional components, the useEffect
hook replaces lifecycle methods.
Example of useEffect
:
jsx
Copy
Download
import React, { useState, useEffect } from 'react'; function Timer() { const [seconds, setSeconds] = useState(0); useEffect(() => { const interval = setInterval(() => { setSeconds(prevSeconds => prevSeconds + 1); }, 1000); return () => clearInterval(interval); // Cleanup }, []); return <div>Seconds: {seconds}</div>; }
Handling Events in React
React events are similar to DOM events but use camelCase syntax.
Example:
jsx
Copy
Download
function ButtonClick() { const handleClick = () => { alert('Button clicked!'); }; return <button onClick={handleClick}>Click Me</button>; }
Conditional Rendering
You can conditionally render components using JavaScript operators like if
, &&
, or ternary operators.
Example:
jsx
Copy
Download
function Greeting({ isLoggedIn }) { return ( <div> {isLoggedIn ? <h1>Welcome back!</h1> : <h1>Please log in.</h1>} </div> ); }
Lists and Keys
When rendering lists, each item should have a unique key
prop for performance optimization.
Example:
jsx
Copy
Download
function TodoList() { const todos = ['Learn React', 'Build a project', 'Deploy app']; return ( <ul> {todos.map((todo, index) => ( <li key={index}>{todo}</li> ))} </ul> ); }
React Router for Navigation
To handle multiple pages in a React app, use React Router.
Installation
bash
Copy
Download
npm install react-router-dom
Example Usage
jsx
Copy
Download
import { BrowserRouter as Router, Route, Link, Routes } from 'react-router-dom'; function Home() { return <h1>Home Page</h1>; } function About() { return <h1>About Page</h1>; } function App() { return ( <Router> <nav> <Link to="/">Home</Link> <Link to="/about">About</Link> </nav> <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> </Routes> </Router> ); }
Fetching Data in React
You can fetch data from APIs using fetch
or libraries like axios
.
Example with useEffect
:
jsx
Copy
Download
import React, { useState, useEffect } from 'react'; import axios from 'axios'; function FetchData() { const [data, setData] = useState([]); useEffect(() => { axios.get('https://api.example.com/data') .then(response => setData(response.data)) .catch(error => console.error(error)); }, []); return ( <ul> {data.map(item => ( <li key={item.id}>{item.name}</li> ))} </ul> ); }
Styling in React
You can style React components using:
- Inline Styles
- CSS Modules
- Styled Components
- Tailwind CSS
Example with CSS Modules:
jsx
Copy
Download
import styles from './App.module.css'; function App() { return <h1 className={styles.title}>Hello, React!</h1>; }
Deploying a React App
To deploy your React app, you can use:
- Vercel
- Netlify
- GitHub Pages
- Firebase Hosting
Steps for Vercel Deployment:
- Run
npm run build
to create a production build. - Drag and drop the
build
folder to Vercel.
Best Practices for React Development
- Keep Components Small & Reusable
- Use Functional Components with Hooks
- Avoid Direct State Mutations
- Use PropTypes or TypeScript for Type Checking
- Optimize Performance with
React.memo
&useMemo
Conclusion
React is a powerful library for building modern web applications. By mastering the fundamentals—components, state, props, and hooks—you can create dynamic and scalable applications.
Next Steps
- Build a small project (e.g., a to-do app).
- Explore advanced topics like Redux or Context API for state management.
- Contribute to open-source React projects.
Happy coding! 🚀
FAQs for “A Beginner’s Guide to React: Getting Started”
1. What is React?
React is a JavaScript library developed by Facebook (Meta) for building user interfaces, particularly single-page applications (SPAs). It allows developers to create reusable UI components.
2. Why should I learn React?
React is in high demand, offers reusable components, improves performance with the Virtual DOM, and has strong community support. Companies like Facebook, Netflix, and Airbnb use it.
3. What are the prerequisites for learning React?
You should know:
- HTML & CSS
- JavaScript (ES6+)
- Basic Node.js & npm/yarn
4. How do I set up a React project?
Use Create React App (CRA):
bash
Copy
Download
npx create-react-app my-app cd my-app npm start
5. What are React components?
Components are reusable UI elements. There are two types:
- Functional Components (using hooks)
- Class Components (older syntax)
6. What is JSX?
JSX is a syntax extension for JavaScript that allows writing HTML-like code inside JavaScript.
7. What are props in React?
Props (short for “properties”) allow passing data from parent to child components.
8. What is state in React?
State is used to manage dynamic data within a component. In functional components, use useState
; in class components, use this.state
.
9. How do I handle events in React?
Use camelCase syntax (e.g., onClick
, onChange
) and pass a function as a handler.
10. How do I conditionally render components?
Use JavaScript conditions like if
, &&
, or ternary operators inside JSX.
11. How do I render lists in React?
Use map()
and assign a unique key
prop to each list item for performance optimization.
12. How do I add routing in React?
Use React Router:
bash
Copy
Download
npm install react-router-dom
Then define routes using <BrowserRouter>
, <Route>
, and <Link>
.
13. How do I fetch data in React?
Use fetch
or axios
inside useEffect
(for functional components) or lifecycle methods (for class components).
14. What are the best ways to style React components?
- Inline styles
- CSS Modules
- Styled Components
- Tailwind CSS
15. How do I deploy a React app?
Use platforms like:
- Vercel
- Netlify
- GitHub Pages
- Firebase Hosting
First, run:
bash
Copy
Download
npm run build
Then upload the build
folder.
16. What are some best practices in React?
- Keep components small and reusable
- Use functional components with hooks
- Avoid direct state mutations
- Use PropTypes or TypeScript for type safety
- Optimize performance with
React.memo
anduseMemo
17. What should I learn after React basics?
- State management (Redux, Context API)
- Server-side rendering (Next.js)
- Advanced hooks (
useReducer
,useCallback
) - API integration (GraphQL, REST)