React Basics
Introduction to React Basics
React is a declarative, component-based JavaScript library for building interactive user interfaces. It leverages a virtual DOM to efficiently update UI on data changes.
You'll learn core concepts: JSX, components, props, state, event handling, and rendering lists.
JSX Syntax
JSX lets you write HTML-like code within JavaScript:
// Hello.js
function Hello() {
return <h1>Hello, React!</h1>;
}
export default Hello; JSX expressions must have a single parent element, and you can embed JS with curly braces: {expression}.
Components & Props
Components are reusable building blocks. Props pass data into components:
function Greeting({ name }) {
return <p>Hello, {name}!</p>;
}
// Usage:
<Greeting name="Rohan" /> State & Hooks
State stores dynamic data in functional components using the useState hook:
import { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>You clicked {count} times</p>
<button onClick={() => setCount(c => c + 1)}>Click me</button>
</div>
);
} Event Handling
React events use camelCase and pass event handlers directly:
function Form() {
function handleSubmit(e) {
e.preventDefault();
alert('Form submitted');
}
return (
<form onSubmit={handleSubmit}>
<button type="submit">Submit</button>
</form>
);
} Conditional Rendering
Render elements based on conditions:
function UserStatus({ isLoggedIn }) {
return isLoggedIn ? <p>Welcome back!</p> : <p>Please log in.</p>;
} Lists & Keys
Render lists with map and provide a unique key for each item:
function NumberList({ numbers }) {
return (
<ul>
{numbers.map(n => <li key={n}>{n}</li>)}
</ul>
);
}
<NumberList numbers={[1,2,3]} /> Forms & Controlled Components
Use state to control form inputs:
function NameForm() {
const [name, setName] = useState('');
return (
<form onSubmit={e => e.preventDefault()}>
<input value={name} onChange={e => setName(e.target.value)} />
<button type="submit">Submit</button>
</form>
);
}