Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

React - Component Lifecycle

Overview of the component lifecycle

The React component lifecycle encompasses the series of methods that are invoked at different stages of a component's existence. These stages include mounting, updating, and unmounting. Understanding the component lifecycle is crucial for managing component state, side effects, and performance. This tutorial provides an overview of the React component lifecycle and its various phases.

Key Points:

  • The component lifecycle has three main phases: mounting, updating, and unmounting.
  • Lifecycle methods allow you to run code at specific stages of a component's lifecycle.
  • React provides both class-based and functional approaches (with hooks) to manage the component lifecycle.

Mounting Phase

The mounting phase includes methods that are called when a component is being inserted into the DOM. The primary methods are:

constructor()

The constructor method is called before the component is mounted. It is used to initialize state and bind event handlers.

// Using constructor in a class component
import React, { Component } from 'react';

class MyComponent extends Component {
    constructor(props) {
        super(props);
        this.state = { count: 0 };
    }

    render() {
        return <div>Count: {this.state.count}</div>;
    }
}

export default MyComponent;

componentDidMount()

The componentDidMount method is called after the component is mounted. It is commonly used to perform side effects, such as fetching data or setting up subscriptions.

// Using componentDidMount in a class component
import React, { Component } from 'react';

class MyComponent extends Component {
    componentDidMount() {
        console.log('Component did mount');
    }

    render() {
        return <div>MyComponent</div>;
    }
}

export default MyComponent;

Updating Phase

The updating phase includes methods that are called when a component's props or state change. The primary methods are:

componentDidUpdate()

The componentDidUpdate method is called after the component is updated. It is used to perform side effects in response to prop or state changes.

// Using componentDidUpdate in a class component
import React, { Component } from 'react';

class MyComponent extends Component {
    componentDidUpdate(prevProps, prevState) {
        if (this.state.count !== prevState.count) {
            console.log('Count updated');
        }
    }

    render() {
        return <div>Count: {this.state.count}</div>;
    }
}

export default MyComponent;

Unmounting Phase

The unmounting phase includes methods that are called when a component is being removed from the DOM. The primary method is:

componentWillUnmount()

The componentWillUnmount method is called before the component is unmounted. It is used to clean up side effects, such as invalidating timers or canceling network requests.

// Using componentWillUnmount in a class component
import React, { Component } from 'react';

class MyComponent extends Component {
    componentWillUnmount() {
        console.log('Component will unmount');
    }

    render() {
        return <div>MyComponent</div>;
    }
}

export default MyComponent;

Using Hooks for Lifecycle Management

In functional components, hooks are used to manage the component lifecycle. The most commonly used hooks are useEffect and useLayoutEffect.

useEffect Hook

The useEffect hook is used to perform side effects in functional components. It combines the behavior of componentDidMount, componentDidUpdate, and componentWillUnmount.

// Using useEffect in a functional component
import React, { useEffect, useState } from 'react';

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

    useEffect(() => {
        console.log('Component did mount or update');

        return () => {
            console.log('Component will unmount');
        };
    }, [count]);

    return (
        <div>
            <p>Count: {count}</p>
            <button onClick={() => setCount(count + 1)}>Increment</button>
        </div>
    );
}

export default MyComponent;

Summary

In this tutorial, you learned about the React component lifecycle and its various phases: mounting, updating, and unmounting. Understanding the component lifecycle is crucial for managing state, side effects, and performance in React applications. You also learned about lifecycle methods in class components and the use of hooks for lifecycle management in functional components.