This page looks best with JavaScript enabled

Create Your First React App In Easy Steps

 ·  ☕ 5 min read  ·  ✍️ Adesh

What is React?

React is an open source Javascript library for building dynamic apps. React is a lightweight library for building fast and interactive user interfaces. Unlike Angular, which is a framework (or a complete solution), React is essentially a ‘view library’. It only takes care of the view or what is rendered in the DOM. It doesn’t have an opinion about other aspects of an app such as routing, calling HTTP services, etc. For those concerns, you need to use other libraries. This means you get the freedom to choose the libraries that you’re familiar with or prefer.

React is Declarative

With the help of React, you can make very interactive UI without much pain. Design simple views for each state in your application, and React will efficiently update and render just the right components when your data changes.

Declarative views make your code more predictable and easier to debug.

React Components

Components are the building block of React apps. A component is a piece of UI. It has data and describes what that piece of UI should look like. When building React apps, we build a bunch of small, independent and reusable components and compose them to make complex UIs. So every React app is essentially a tree of components. If you’ve worked with Angular 2+, this should sound familiar.

React is Component-based Architecture

React is based on component based architecture. You can build encapsulated components that manage their own state, then compose them to make complex UIs.

Since component logic is written in JavaScript instead of templates, you can easily pass rich data through your app and keep state out of the DOM.

Reusable Components

You can develop reusable components without much hassle.

Prerequisites

We’ll assume that you have some familiarity with HTML and JavaScript, but you should be able to follow along even if you’re coming from a different programming language. We’ll also assume that you’re familiar with programming concepts like functions, objects, arrays, and to a lesser extent, classes.

Setting up the Development Environment

Before going to create your first react app, let’s first setup the development environment.

First check, whether you have Node.js an NPM installed in your machine. You can go to nodejs.org and install Node, if you don’t have.

Once you have installed Node and NPM in your machine, choose your code editor. Feel free to use any editors you prefer. My preferred editor is Visual Studio Code/VSCode which you can get from code.visualstudio.com

Create Your First React App

Once everything is setup, let’s start creating your first react app.

Type the following command to create a fresh new react app.

1
npx create-react-app my-app

This command will create my-app folder having react app files. Now, go to my-app folder and type this command.

1
cd my-app

Now, type this command to run your react app.

1
npm start

This command will show below message in your terminal window, and open the app in browser window. The app url will be http://localhost:3000/ in your browser tab.

React App Project Structure

Now, open your code editor, here I have Visual Studio Code, so I am going to open our my-app in the VS Code editor to see the react app project structure.

This is very basic project structure.

react project structure

You will have node_modules, public and src folders in the root of the my-app folder. Along with these folders, you can see package.json file as well.

  • node_modules: where all the 3rd-party dependencies (libraries) are stored. We never have to touch this.
  • public: where we have public assets of our app such as index.html, logo, images, etc.
  • src: where we have the source code of our React app.

Open up package.json. Chances are you’re already familiar with this file. If not, package.json is like an identification card for a project. It includes the project’s name, version, dependencies, etc.

Note that under dependencies, we only have 3 dependencies:

package.json

Next is the index.html page, located in the public folder. If you do link up any external stylesheets, or need to add bootstrap, or another feature, this is where you would add it.

You can also change the title here. Other than that, you won’t usually need to touch this file very much. You will also notice the div with the id of “root”. This is where all of the content will be output. You don’t need to change that, but just know that it’s there.

create first react app

index.html

The next file you may want to look at is your index.js file in the src folder. Here, we’re importing React and the ReactDOM. We are also rendering everything here to the root element.

create your first app

index.js

Create Your First React Element

Now, we are going to create our first react element. So, first of all, delete all files from the src folder, and create a file index.js in same folder.

Write the below mentioned code in this file, and save the file.

1
2
3
4
5
6
import React from 'react';
import ReactDOM from 'react-dom';

const element = <h1>Hello ZeptoBook!</h1>;

ReactDOM.render(element, document.getElementById('root'));

As soon as you saved your file, our first element H1 will be displayed on the browser window.

Code Analysis

Let’s have a look at above code.

On the top 2 lines, we are importing react modules.

On line 4, we are creating a constant named element, and created H1 tag inside this element.

Finally, the last line of code will render our react element.

ReactDOM.render() will render this element in DOM. If you notice, we used root as our container to render this element. You can find the root element in /public/index.html file.

1
<div id="root"></div>

So, here we learn, how to setup and run our react app very easily without any hassle.

Further Reading

Angular Best Practices For Building Single Page Application

How To Listen Changes In Reactive Form Controls Using valueChanges In Angular

Stop Using ElementRef! For DOM Manipulation In Angular

Share on

Adesh
WRITTEN BY
Adesh
Technical Architect