Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

How to render a component in ReactJS

The Basics of Rendering in ReactJS

In the world of ReactJS, rendering is a fundamental concept. It's like placing the pieces on a chessboard before starting the game. But instead of chess pieces, you're placing components, the building blocks of your application, onto the ReactJS board (also known as the DOM, or Document Object Model).

What is Rendering?

Rendering, in the context of ReactJS, is the process of displaying our components (the individual pieces of our application) on the screen, or more specifically, on the user's browser. It's like the director of a play telling the actors when and where to go on stage.

Component Rendering: The First Step

Before we start rendering, we first need a component to render. Let's create a simple component. A component in ReactJS is like a blueprint for a house. It describes what the house (or in our case, part of the webpage) will look like and how it will behave.

function Greeting() {
  return <h1>Hello, world!</h1>;
}

Here, we've created a function component named Greeting that returns a single HTML element, an h1 heading. This function is our blueprint.

Rendering a Component

To render our Greeting component, we use the ReactDOM.render() function. It's like telling our director (ReactDOM) to send our actor (the Greeting component) on stage (the DOM).

ReactDOM.render(<Greeting />, document.getElementById('root'));

In this line of code, we're telling React to render our Greeting component in the HTML element with the id 'root'. It's like telling our actor to stand on the part of the stage marked 'root'.

Rendering Multiple Components

Now, what if we have more than one component? Just like a play isn't interesting with only one actor, an application isn't very useful with only one component.

Let's create another component:

function Farewell() {
  return <h1>Goodbye, world!</h1>;
}

Now we have two components, Greeting and Farewell.

But wait, ReactDOM.render() can only render one component at a time! It's like our director can only focus on one actor at a time. How can we solve this?

The answer lies in how we defined our components. Remember how they're like blueprints? Well, we can use these blueprints inside other blueprints. We call this composition.

Let's create a new component that uses our Greeting and Farewell components.

function HelloWorld() {
  return (
    <div>
      <Greeting />
      <Farewell />
    </div>
  );
}

Now, we have a HelloWorld component that uses our previous components. We can render this new component just like we did with the Greeting component.

ReactDOM.render(<HelloWorld />, document.getElementById('root'));

Now both our Greeting and Farewell components get rendered!

The Magic Behind Rendering

So how does ReactJS do all this? It's all thanks to the Virtual DOM, a concept unique to ReactJS. The Virtual DOM is like a rehearsal stage. Before making changes to the real stage (the actual DOM), React rehearses those changes on the Virtual DOM.

When we call ReactDOM.render(), ReactJS creates a representation of the DOM in memory (the Virtual DOM). It then figures out the most efficient way to make these changes on the real DOM. This process is known as reconciliation, and it's what makes ReactJS so fast and efficient.

Conclusion

To wrap up, rendering in ReactJS is like a well-orchestrated play. Each component is an actor, and ReactDOM is the director, deciding when and where each actor goes on stage. By using the ReactDOM.render() function and the concept of component composition, you can create complex applications with multiple components.

Remember, every great application started with a single ReactDOM.render(). So go ahead, start rendering, and let your components shine on the grand stage of the DOM!