Obafemi Emmanuel

React Components & Props

Published 4 months ago

Introduction

React is a powerful JavaScript library for building user interfaces, primarily using components. Components allow you to break down your UI into reusable and manageable pieces. In this guide, we will explore the fundamental concepts of React Components & Props, covering:

  • Function vs. Class Components
  • Creating and Using Components
  • Understanding Props
  • Default Props & PropTypes

By the end of this article, you'll have a strong grasp of how to work with components and props in React effectively.


1. Function vs. Class Components

React supports two main types of components: Function Components and Class Components.


Function Components

Function components are JavaScript functions that return React elements. They are simpler, easier to read, and are now preferred due to React Hooks, which allow them to manage state and lifecycle methods.

Example of a Function Component:

function Greeting(props) {
  return <h1>Hello, {props.name}!</h1>;
}

Benefits of Function Components:

  • Easier to write and understand
  • Improved performance (no this keyword usage)
  • Hooks allow handling state and side effects

Class Components

Class components are ES6 classes that extend React.Component. They have a render() method that returns JSX and can use lifecycle methods.


Example of a Class Component:

class Greeting extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}!</h1>;
  }
}

Why Class Components Are Less Common Now:

  • More complex syntax
  • Requires this keyword, which can be confusing
  • Function components with Hooks provide equivalent functionality with better readability

2. Creating and Using Components

Creating a React Component

To create a component, simply define a function or class and return JSX.


Example of Creating a Component:

function Welcome() {
  return <h2>Welcome to React!</h2>;
}

Using a React Component

You can use a component in another component by including it like an HTML tag.


Example of Using a Component:

function App() {
  return (
    <div>
      <Welcome />
    </div>
  );
}

3. Understanding Props

Props (short for properties) allow components to receive and use data from their parent components. They make components reusable by passing different data dynamically.


Example of Props:

function UserProfile(props) {
  return <h2>User: {props.username}</h2>;
}

function App() {
  return <UserProfile username="JohnDoe" />;
}

Key Points About Props:

  • Props are read-only (immutable) and cannot be modified inside the child component.
  • Props can be any data type, including strings, numbers, arrays, or even functions.

4. Default Props & PropTypes

Default Props

Default props provide default values for props in case they are not passed.

Example:

function Welcome(props) {
  return <h2>Welcome, {props.name}!</h2>;
}

Welcome.defaultProps = {
  name: "Guest",
};

If no name prop is provided, it will default to "Guest".


PropTypes

PropTypes help validate the types of props passed to a component, reducing errors.


Example:

import PropTypes from 'prop-types';

function UserProfile(props) {
  return <h2>User: {props.username}</h2>;
}

UserProfile.propTypes = {
  username: PropTypes.string.isRequired,
};

If username is not a string, a warning will appear in the console during development.


Conclusion

React components and props are fundamental to building reusable and dynamic user interfaces. Function components have become the standard due to their simplicity and performance benefits. Props allow components to be flexible, and using default props and PropTypes ensures data integrity.

With this knowledge, you can now confidently create, use, and manage components in your React applications. Happy coding! šŸš€


Leave a Comment


Choose Colour