What is React.js?
In React, you develop your applications by creating reusable components that you can think of as independent Lego blocks. These components are individual pieces of a final interface, which, when assembled, form the application’s entire user interface.
A Brief History of React.js
Back in 2011, Facebook had a massive user base and faced a challenging task. It wanted to offer users a richer user experience by building a more dynamic and more responsive user interface that was fast and highly performant.
Jordan Walke, one of Facebook’s software engineers, created React to do just that. React simplified the development process by providing a more organized and structured way of building dynamic and interactive user interfaces with reusable components.
Fill out the form to get your free guide.
What does React.js do?
Typically, you request a webpage by typing its URL into your web browser. Your browser then sends a request for that webpage, which your browser renders. If you click a link on that webpage to go to another page on the website, a new request is sent to the server to get that new page.
This back-and-forth loading pattern between your browser (the client) and the server continues for every new page or resource you try to access on a website. This typical approach to loading websites works just fine, but consider a very data-driven website. The back and forth loading of the full webpage would be redundant and create a poor user experience.
This pattern is known as client-side routing because the client doesn’t have to reload the full webpage to get a new page each time a user makes a new request. Instead, React intercepts the request and only fetches and changes the sections that need changing without having to trigger a full page reload. This approach results in better performance and a more dynamic user experience.
React relies on a virtual DOM, which is a copy of the actual DOM. React’s virtual DOM is immediately reloaded to reflect this new change whenever there is a change in the data state. After which, React compares the virtual DOM to the actual DOM to figure out what exactly has changed.
React then figures out the least expensive way to patch the actual DOM with that update without rendering the actual DOM. As a result, React’s components and UIs very quickly reflect the changes since you don’t have to reload an entire page every time something updates.
How to Use React.js
In contrast to other frameworks like Angular, React doesn’t enforce strict rules for code conventions or file organization. This means developers and teams are free to set conventions that suit them best and implement React however they see fit. With React, you can use as much or as little as you need due to its flexibility.
Using React, you can create a single button, a few pieces of an interface, or your entire app’s user interface. You can gradually adopt and integrate it into an already existing application with a sprinkle of interactivity or, better yet, use it to build full-fledged powerful React applications from the ground up, depending on your need.
Integrating React into an Existing Website
When looking to add dynamic interactivity to your website, React is an excellent choice. By integrating React, you can create reusable and interactive components that can be placed anywhere on your site, such as sidebars or widgets. Here's a simplified breakdown of the steps to achieve this:
Step 1: Adding CDN Scripts to HTML:
- Begin by adding the core React library API from CDN to your website's HTML index file.
- Next, incorporate the React DOM from the CDN; this is essential for rendering components to the Document Object Model (DOM).
- Then, include Babel from the CDN, which transpiles React code ensuring compatibility across browsers.
Also, don't forget to load your React component file.
The first step is to add the two main CDN scripts to your website’s HTML index file. You need these scripts to load React into your app over a CDN service.
Step 2: Marking the Render Location on Your Website:
- Designate a location in your HTML where the React component will render. This can be done by adding a <div> element with a unique ID, which we will reference in our React code.
Step 3: Crafting the React Component:
- Create a React component, in this case, named like_widget.js.
- This component will have a simple function returning a JSX syntax that renders a "Hello World" message.
- With the help of ReactDOM, we then render this component to the DOM, targeting the unique ID we previously set in our HTML.
Hello World; // Select the container const container = document.getElementById("like_widget_container"); // Render the component to the DOM ReactDOM.render(
If you run the application, it will render “Hello World” to the browser in the exact spot you marked as shown below.
Creating a Fully-Fledged React App
Although you can easily drop React into an existing web application to create small pieces of an interface, it is more practical to use React to build fully-fledged web applications. However, React arguably has heavy tooling configuration requirements that are typically daunting and tedious to set up when creating new React applications.
Luckily, you don’t need to learn this build setup or configure the build tools yourself. Facebook has created a Node package command-line tool called create-react-app to help you generate a boilerplate version of a React application. This package benefits you from working out of the box and provides a consistent structure for React applications that you will recognize when moving between React projects.
Creating a new React project is as simple as running the following commands in your terminal:
Because of its ability to create fast, efficient, and scalable web applications, React has gained stability and popularity. Thousands of web applications use it today, from well-established companies to new start-ups. Here, we delve into a handful of applications, illustrating how React.js has been instrumental in enhancing user experience and interaction.
As the genesis of React.js, Facebook exemplifies the library’s prowess. React streamlines the platform's real-time features, such as likes, comments, and status updates, ensuring a seamless and dynamic user experience. The modular nature of React facilitates Facebook's constantly evolving interface, adapting to the needs of over 2.8 billion monthly active users.
Instagram's web experience is a canvas of interactive elements, all orchestrated by React.js. Every image, like, story view, and direct message underscores React’s ability to handle intricate user interactions swiftly. The platform’s elegant, user-friendly interface is a testament to React’s prowess in delivering high-performance user interactions.
Airbnb exemplifies how React.js can transform complex data into an intuitive user experience. Each property listing, interactive map, and real-time booking is a symphony of React components working in unison to create a seamless user journey from browsing to booking.
A few other notable mentions are:
- The New York Times
- Khan Academy
- WhatsApp Web
React has also grown more robust and can now be used to build native mobile applications using React Native and Desktop apps using Electron.js.
Getting Started With React.JS
Editor's note: This post was originally published in June 2022 and has been updated for comprehensiveness.