React is a popular JavaScript library for building user interfaces, especially for single-page applications. Its focus on a component-based architecture makes development more modular and reusable. Let’s explore the core concepts that make React powerful and efficient.
1. Components
- Definition: Components are the building blocks of a React application. They represent parts of the user interface.
- Types:
- Functional Components: Simple functions that return JSX.
- Class Components: ES6 classes extending
React.Component
(less common in modern React due to hooks).
- Reusable: Components can be reused across the application.
2. JSX (JavaScript XML)
- What it is: A syntax extension that allows writing HTML-like code in JavaScript.
- How it works: JSX is compiled into JavaScript functions by tools like Babel.
- Example:
const Greeting = () => <h1>Hello, World!</h1>;
3. State and Props
- State:
- Internal data managed within a component.
- Mutable and used to track component behavior.
- Example:
const [count, setCount] = React.useState(0);
- Props:
- Short for "properties."
- Data passed from a parent component to a child component.
- Immutable.
4. Lifecycle Methods (for Class Components)
- Methods that let you hook into component creation, updating, and destruction phases.
- Examples:
componentDidMount
,componentDidUpdate
,componentWillUnmount
.
With functional components and hooks, lifecycle methods are replaced by hook usage like useEffect
.
5. Hooks
- Introduced in React 16.8 to manage state and side effects in functional components.
- Common hooks:
- useState: Manages state.
- useEffect: Handles side effects like API calls.
- useContext: Accesses context values.
- Example:
const [count, setCount] = useState(0);
useEffect(() => {
console.log(`Count is ${count}`);
}, [count]);
6. Virtual DOM
- React uses a virtual DOM to efficiently update and render the user interface.
- Changes are calculated in the virtual DOM and then applied to the real DOM, minimizing performance overhead.
7. React Router
- Used for navigation in single-page applications.
- Allows for client-side routing and dynamic rendering of components.
8. Context API
- A way to share state across components without prop drilling.
- Example:
const ThemeContext = React.createContext();
React simplifies the process of building scalable and interactive UIs. By understanding these core concepts, you can create efficient and maintainable applications.