DEV Community

Cover image for React in 5 Minutes
Lokesh Singh
Lokesh Singh

Posted on

React in 5 Minutes

React is a powerful JavaScript library for building user interfaces. It’s designed to make your front-end development faster and easier. Let's break down its concepts in a simple and friendly way!

1. Components

Components are the building blocks of a React application. They are like reusable pieces of code that return a part of the user interface.

Example:

function Welcome(props) {
  return <h1>Hello, {props.name}!</h1>;
}
Enter fullscreen mode Exit fullscreen mode

Note:

  • Components can be functional (as shown above) or class-based.
  • Use functional components whenever possible; they are simpler and easier to manage.

2. JSX

JSX is a syntax extension that looks like HTML but is used in React. It makes writing React components easier and more intuitive.

Example:

const element = <h1>Hello, world!</h1>;
Enter fullscreen mode Exit fullscreen mode

Note:

  • JSX lets you write HTML-like code inside your JavaScript.
  • It’s transformed into JavaScript by React, so it can be used to create UI elements.

3. Props

Props are the way you pass data from one component to another. Think of them like arguments you pass to a function.

Example:

function Greeting(props) {
  return <p>{props.message}</p>;
}
Enter fullscreen mode Exit fullscreen mode

Note:

  • Props are read-only and cannot be modified by the receiving component.
  • They help make your components reusable and dynamic.

4. State

State is used to manage data that changes over time. Unlike props, state is managed within the component.

Example:

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increase</button>
    </>
  );
}
Enter fullscreen mode Exit fullscreen mode

Note:

  • State is used with the useState hook in functional components.
  • State allows components to remember and respond to user inputs.

5. Lifecycle Methods

Lifecycle methods are functions that get called at different stages of a component's life. They are mainly used in class components but can be simulated in functional components with hooks.

Stages:

  • Mounting: When the component is added to the DOM.
  • Updating: When the component’s state or props change.
  • Unmounting: When the component is removed from the DOM.

6. Hooks

Hooks are special functions that let you use state and other React features in functional components.

Example:

import { useState, useEffect } from 'react';

function Timer() {
  const [time, setTime] = useState(0);

  useEffect(() => {
    const interval = setInterval(() => {
      setTime(time + 1);
    }, 1000);
    return () => clearInterval(interval);
  }, [time]);

  return <p>Time: {time}s</p>;
}
Enter fullscreen mode Exit fullscreen mode

Note:

  • Common hooks: useState, useEffect, useContext, etc.
  • Hooks can only be used inside functional components.

7. Context API

The Context API is a way to pass data through the component tree without having to pass props down manually at every level.

Example:

const ThemeContext = createContext('light');

function App() {
  return (
    <ThemeContext.Provider value="dark">
      <Toolbar />
    </ThemeContext.Provider>
  );
}

function Toolbar() {
  return (
    <ThemeContext.Consumer>
      {value => <p>Current theme: {value}</p>}
    </ThemeContext.Consumer>
  );
}
Enter fullscreen mode Exit fullscreen mode

Note:

  • Context is useful for global data like themes, user info, etc.
  • The useContext hook can be used instead of Consumer for simplicity.

8. Fragments

Fragments let you group multiple elements without adding extra nodes to the DOM.

Example:

function App() {
  return (
    <>
      <h1>Title</h1>
      <p>Paragraph</p>
    </>
  );
}
Enter fullscreen mode Exit fullscreen mode

Note:

  • Fragments make your DOM cleaner and your code more readable.
  • Use empty tags <> </> as shorthand for React.Fragment.

9. Keys

Keys help React identify which items have changed, are added, or are removed. They are crucial for managing lists efficiently.

Example:

const items = ['Apple', 'Banana', 'Cherry'];
const listItems = items.map((item, index) => <li key={index}>{item}</li>);
Enter fullscreen mode Exit fullscreen mode

Note:

  • Keys should be unique and stable.
  • Avoid using indices as keys if the list items can change order.

10. Controlled vs. Uncontrolled Components

Controlled components are those where React controls the form data, while uncontrolled components rely on the DOM.

Example of Controlled Component:

function Form() {
  const [name, setName] = useState('');

  return (
    <>
      <input value={name} onChange={(e) => setName(e.target.value)} />
      <p>Your name: {name}</p>
    </>
  );
}
Enter fullscreen mode Exit fullscreen mode

Example of Uncontrolled Component:

function Form() {
  const nameRef = useRef();

  return (
    <>
      <input ref={nameRef} />
      <button onClick={() => alert(nameRef.current.value)}>Alert Name</button>
    </>
  );
}
Enter fullscreen mode Exit fullscreen mode

Note:

  • Controlled components provide better control over the form data.
  • Uncontrolled components can be easier to integrate with existing non-React code.

Conclusion

React is all about breaking down your UI into manageable pieces and making your code more reusable. Practice these concepts, build projects, and you’ll become a React pro in no time!

If you enjoyed this post, please like, share, and keep learning. Stay connected

Comment: If any key concepts or important details are missing,
please let me know.

Top comments (0)