DEV Community

Cover image for The React Lifecycle Methods: An Introduction
Adriana DiPietro
Adriana DiPietro

Posted on

11 4

The React Lifecycle Methods: An Introduction

Welcome to an introduction to React Lifecycle Methods! This guide aims to help us learn a few things:

  1. What is the React Lifecycle?
  2. Why do we use React Lifecycle Methods?
  3. What are some React Lifecycle Methods?
  4. Vocabulary: "mounting", "unmounting", "JSX"

Now that we know what we will learn, let's get started.

What is the React Lifecycle?

You can think of the React Lifecycle as the life of a component. Each component experiences a lifecycle through mounting, updating, and unmounting. Colloquially, the birth, the growth, and the death of a component.

What is "mounting"?

Mounting establishes components into actual DOM elements that will be displayed in the DOM, and thus, to the client-side.

What is "unmounting"?

Unmounting, as we can imagine, is the process of removing DOM elements from the DOM.

Why do we use React Lifecycle Methods?

In a previous post, I explained what React is and what React Components are. To summarize, React uses a component-architecture to make building user interfaces more efficient. As components allow an application to implement a separation of concerns, or the single responsibility principle, there are a lot of moving parts(ahem, components) to a React-built application.

Therefore, components need to only "live" on the client-side when necessary. Hence, a lifecycle!

We only want users to see a component's rendered output when it makes sense because we want our application experience to be succinct and easy.

For example, a component called "SignupForm" may only be mounted when the signup link is clicked and may be unmounted as the user is redirected to the application home page after successful a signup.

Some Lifecycle Methods:

render()

  • is the most used lifecycle method, as it is required in every React class component.
  • is a pure function; render() has no side effects => it will always returns same output given the same input.
  • is in charge of rendering your component to the UI.
  • returns JSX.
  • cannot modify component state as its principal purpose is to render the component to the client.

constructor()

  • is called before a component is mounted.
  • is used for initializing local state.
  • assigns an object to "this.state" through super(props).
  • is no longer necessary for class components through ES6.
  • can be replaced with creating an object using "this.state".

componentDidMount()

  • gets invoked after a React component has been mounted.
  • supplies a place for API calls and fetching remote data.
  • allows you to use setState() to update state.

componentWillUnmount()

  • gets invoked just before the component unmounts.
  • represents the end of a component's lifecycle.
  • implements "clean up", such as clearing a timer, clearing a cached store.

Vocabulary

  • JSX: stands for JavaScript XML; it is syntactic extension of JavaScript that allows us to write HTML in React.
  • Mounting: placing a component into the DOM.
  • Unmounting: removing a component from the DOM.
  • setState(): when called, tells React that the state has changed.
  • Single responsibility: assigning individual responsibility to individual pieces, such as components.
  • pure function: a function that returns the same output given the same input; has no side effects.

🪐 Thank you for reading along.
🪐 Comment below to continue the discussion!

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (3)

Collapse
 
grahamthedev profile image
GrahamTheDev • Edited

Just popped by to say I love the single colour cover images you keep using...they keep making me think that something has gone wrong so I spend longer looking at your article in the feed...very clever!

Nice article too by the way, but that was my secondary thought 🤣

❤🦄

Collapse
 
am20dipi profile image
Adriana DiPietro

Omg haha! Thanks so much for the comment

Collapse
 
am20dipi profile image
Adriana DiPietro

Totally agree. I plan on diving into Hooks on my next post. Thanks for commenting!!

Image of Docusign

🛠️ Bring your solution into Docusign. Reach over 1.6M customers.

Docusign is now extensible. Overcome challenges with disconnected products and inaccessible data by bringing your solutions into Docusign and publishing to 1.6M customers in the App Center.

Learn more