A Beginner’s Guide to Rendering Components with ReactDOM in React.js

Welcome to this beginner-friendly guide to rendering components with ReactDOM in React.js! React is a widely popular JavaScript library for building user interfaces, and ReactDOM is a separate package that provides DOM-specific methods for working with React. In this guide, we'll explore the process of rendering React components using ReactDOM, discuss how to get started, and provide clear code examples along the way. So, if you're new to React or just looking to brush up on your skills, you've come to the right place!

What is ReactDOM?

Before we dive into rendering components, let's briefly discuss what ReactDOM is and why it's essential when working with React. ReactDOM is a package that provides DOM-specific methods to manage React components. It allows you to manipulate the DOM (Document Object Model) of a web page and render React components efficiently. In other words, ReactDOM acts as a bridge between React components and the actual DOM elements that make up a web page.

Setting Up a React Project

To get started with rendering components in React, you'll need to set up a React project. We'll be using the Create React App tool, which is the official recommended way to start a new React project. It comes with a modern build setup and requires no configuration, making it beginner-friendly.

First, make sure you have Node.js installed on your computer. If you don't have it, you can download it from the official Node.js website.

Next, open your terminal or command prompt and run the following command to install Create React App globally:

npm install -g create-react-app

Now that Create React App is installed, let's create a new project called "rendering-components":

create-react-app rendering-components

This command will create a new folder called "rendering-components" containing the default React project structure. Change into the newly created folder and start the development server by running the following commands:

cd rendering-components npm start

The development server should now be running, and you can view your React app by opening a browser and navigating to http://localhost:3000/.

Rendering Components with ReactDOM

Importing ReactDOM

To use ReactDOM, you'll first need to import it at the top of your JavaScript file. In our case, open the src/index.js file and add the following import statement:

import ReactDOM from 'react-dom';

Creating a React Component

Let's create a simple React component that we can render on the page. For this example, we'll create a functional component called HelloWorld that returns a <div> element containing the text "Hello, World!".

In the src folder, create a new file called HelloWorld.js and add the following code:

import React from 'react'; function HelloWorld() { return ( <div> Hello, World! </div> ); } export default HelloWorld;

Rendering the Component

Now that we have a simple React component, let's render it using ReactDOM. In the src/index.js file, import the HelloWorld component at the top of the file:

import HelloWorld from './HelloWorld';

Next, replace the existing ReactDOM.render() call with the following code:

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

Here, we're telling ReactDOM to render our HelloWorld component within the <div> element with the ID "root". This is the main container for our React app, and it can be found in the public/index.html file.

Save your changesand refresh your browser. You should now see "Hello, World!" displayed on the page.

Adding Props to Components

One of the powerful features of React components is their ability to accept props (short for properties). Props are custom attributes that allow you to pass data and event handlers down to child components. Let's modify our HelloWorld component to accept a name prop and display a personalized greeting.

Update the HelloWorld component in src/HelloWorld.js as follows:

import React from 'react'; function HelloWorld(props) { return ( <div> Hello, {props.name}! </div> ); } export default HelloWorld;

Now, update the src/index.js file to pass a name prop to the HelloWorld component:

ReactDOM.render( <React.StrictMode> <HelloWorld name="John Doe" /> </React.StrictMode>, document.getElementById('root') );

Save your changes and refresh the browser. You should now see "Hello, John Doe!" displayed on the page.

Component Composition

React components can be nested and composed together to create more complex UIs. Let's create another component called App that includes the HelloWorld component and a button. When the button is clicked, the displayed name will change.

First, create a new file called App.js in the src folder and add the following code:

import React, { useState } from 'react'; import HelloWorld from './HelloWorld'; function App() { const [name, setName] = useState('John Doe'); const changeName = () => { setName('Jane Doe'); }; return ( <div> <HelloWorld name={name} /> <button onClick={changeName}>Change Name</button> </div> ); } export default App;

Here, we're using the useState hook to manage the state of the name variable, which is initially set to "John Doe". We've also created a function called changeName that updates the name state when called. This function is passed to the button's onClick event handler.

Now, update the src/index.js file to render the App component instead of the HelloWorld component:

import App from './App'; ReactDOM.render( <React.StrictMode> <App /> </React.StrictMode>, document.getElementById('root') );

Save your changes and refresh the browser. You should now see the HelloWorld component along with a button. Clicking the button should change the displayed name to "Jane Doe".


Q: What is the difference between React and ReactDOM?

A: React is a JavaScript library for building user interfaces, while ReactDOM is a separate package that provides DOM-specific methods for managing React components. In essence, React is the core library for creating components, and ReactDOM is responsible for rendering those components in a browser environment.

Q: Can I use ReactDOM with other rendering targets, like React Native?

A: ReactDOM is specifically designed for rendering React components in web browsers using the DOM. If you want to use React with other rendering targets, like mobile apps with React Native, you will need to use a different package, such as react-native.

Q: What is the purpose of <React.StrictMode>?

A: <React.StrictMode> is a wrapper component that helps you catch potential issues and deprecated patterns in your code. It runs additional checks and warnings during development, helping you write better and more future-proof code. It doesn't impact the production build of yourapp and can be safely removed if not needed. However, it's recommended to use it during development to catch potential issues early on.

Q: How do I handle user input and form submissions with React and ReactDOM?

A: Handling user input and form submissions in React typically involves using controlled components and managing the form state within your component. To handle user input, you can create event handlers for input elements and update the component's state accordingly. For form submissions, you can create a submission handler function that processes the form data and performs the desired actions, such as sending the data to a server.

Q: How do I render a list of items using ReactDOM?

A: When rendering a list of items in React, you typically use the map() function to loop through an array of data and create an array of React components. Each component should have a unique key prop to help React manage and optimize the rendering of the list. Then, simply include the array of components within your JSX code to render the list.


In this beginner's guide, we've covered the basics of rendering components with ReactDOM in React.js. You've learned how to set up a React project using Create React App, create and render React components, pass props to components, and compose components together to build more complex UIs.

As you continue to explore React and ReactDOM, you'll find that they offer a powerful and flexible way to create web applications. Keep practicing and experimenting with new concepts and techniques, and you'll become a proficient React developer in no time!

Become The Best React Developer 🚀
Codedamn is the best place to become a proficient developer. Get access to hunderes of practice React.js courses, labs, and become employable full-stack React web developer.

Free money-back guarantee

Unlimited access to all platform courses

100's of practice projects included

ChatGPT Based Instant AI Help (Jarvis)

Structured React.js/Next.js Full-Stack Roadmap To Get A Job

Exclusive community for events, workshops

Start Learning

Sharing is caring

Did you like what Mehul Mohan wrote? Thank them for their work by sharing it on social media.


No comments so far

Leave a question/feedback and someone will get back to you