React Class Component with Examples

Jan 27 2024
A class component is a Javascript class which extends React.Component class. Class component defines methods that get executed during the lifecyle of that component.

Table of Contents

Overview

React class component is a class that extends React.Component class. This allows our component to override the methods from the parent class. One of the parent methods is render() which we need to override to render our elements to the UI.

A class component is stateful and can have a constructor and state.

Constructor is a special kind of function that is called when a component is initialized. We define a constructor by writing constructor().

As a rule of inheritance, you need to call the parent constructor by writing super() in the child constructor.

Constructor is used to set the state of the class. A state is an object that holds properties of the class.

Example

import React from 'react';
import ReactDOM from 'react-dom';

export default class Book extends React.Component {
    constructor(props) {
        super(props);
    }

    render() {
        return <h1>This is a book</h1>
    }
}
ReactDOM.render(<Book/>, document.getElementById('root'));

React class component with state

State is used to maintain the data in a component. It is mutable in nature so each time its value changes, the component gets re-rendered.

In the example below, we are saving 2 state variables called author and year. They can be accessed via this.state.author and this.state.year respectively.

import React from 'react';
import ReactDOM from 'react-dom';

export default class Book extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            author: 'Michael Jordan',
            year: 2020
        }
    }

    render() {
        return <div>
            <h1>This is a book</h1>
            <h2>Author: {this.state.author}</h2>
            <h2>Year: {this.state.year}</h2>
        </div>
    }
}
ReactDOM.render(<Book/>, document.getElementById('root'));

Output

React class component with props

Props are used to pass data to a component. Props to components are like arguments to a function. They are written the same way as attributes to an HTML element.

this.props returns all the props to a component. In the example below, index and author are 2 props which are passed to the Book component (see ReactDOM.render()) and they are accessed via this.props.index and this.props.author in the render().

import React from 'react';
import ReactDOM from 'react-dom';

export default class Book extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            author: 'Michael Jordan',
            year: 2020
        }
    }

    render() {
        return <div>
            <h1>This is a book with index: {this.props.index}</h1>
            <h2>Author: {this.props.author}</h2>
        </div>
    }
}

ReactDOM.render(<div>
    <Book index={1} author={'Michael'}/>
    <Book index={2} author={'John'}/>
</div>, document.getElementById('root'));

Output

Hope this article clears some common confusion about props and state to novice coders. Watch this publication for even more interesting and interview related articles.