How to do lazy loading in ReactJS
Whenever creating any kind of application, you must think about its performance. Nowadays, performance is the biggest factor in applications. Consider if you have a competitive application, then if you lose the performance the users will go for the alternative application which leads you to the biggest loss.
When you start to create an application at the time you have to start to think about the performance as well. If you think later, then it will be a mess for you, because the performance factor will come to place when you are adding more facility to the application. When we add the features to the application gradually, the bundle size will also increase, and the browser needs to download the whole required files from the bundles.
We know the deployment bundle has all the files, so if you try to download all the files, that might face performance problems. So, here we can have one concept, that's called Lazy loader or Code-splitting.
What is ReactJS Lazy loading?
A lazy function lets you defer the loading of a component's code until it is rendered for the first time. Before, it will remain in the bundle. So that we can reduce the load of the application.
What is the syntax for lazy loading?
import { lazy } from "react";
const componentName = lazy(load);
The function lazy
is derived from react package and the lazy function has the only parameter that is our component. Once passed as a parameter to the function, then it will return as a new component that will be stored in the variable and we can use it accordingly.
E.g:-
import { lazy } from "react";
const About = lazy(() => import("./Aboutus"));
The above example is doing the dynamic import() of a component using lazy function.
Along with the lazy function we can use another component, i.e.; React Suspense
. This function will specify while the component is loading, look at the below picture to clear the confusion.
The above picture shows loading text while moving to the next item, but it is shown only once, because the component is downloaded from the bundle and does not require further loading of the same component. The loading text is coming from Suspense
component.
import React, { Suspense, lazy } from "react";
import { BrowserRouter as Router, Routes, Route, Link } from "react-router-dom";
const About = lazy(() => import("./Aboutus"));
const HomeComp = lazy(() => import("./Home"));
const Contact = lazy(() => import("./contactus"));
function App() {
return (
<>
<Router>
<Suspense fallback={<div className="loading">Loading...</div>}>
<Routes>
<Route path="/" element={<Layout />}>
<Route path="/" element={<HomeComp />} />
<Route path="/about" element={<About />} />
<Route path="/Contact" element={<Contact />} />
</Route>
</Routes>
</Suspense>
</Router>
</>
);
}
The above code is the abstract of the react lazy loader, please find the GitHub link for your references.
Thank you.
More Stories
Cross-Origin Resource Sharing (CORS) is a security feature that lets a web page from one domain request resources from a different domain
SVG elements will not add the accessibility atttributes by default, so that will fail to describe by itself, and the NVDA and other screen reader required these attributes to work.
Despite being acquainted with git, many developers struggle to resolve these conflicts due to a lack of understanding of how to pull the conflict details into their local machines.
Firebase Authentication is one of its gems, allowing you to add user authentication effortlessly. It's secure, reliable, and comes with Google's seal of approval.
Why am I getting an auth/invalid-api-key error when setting the Firebase values in the environment variable on NextJS ?
Enzyme Internal Error: Enzyme expects an adapter to be configured, but found none.
Easist way of downloading the SVG file as PNG file is done using javascript snippet
To keep the code is safe and distrubuted between multiple resources that been achieved with the help of GIT
The importance of the http response headers are highly needed to protect the websites from hackers. If you poorly managed the response header then one day the website will be compromise to the hacker.
An HTTP header is a response by a web server to a browser that is trying to access a web page.
Application Insights is an feature of Azure Monitor and it provides application performance monitoring features. APM tools are very useful to analyse applications from development, testing and production release.
We covered most asked questions for Javascript interview and their answers
we are displaying these emojis with the help of ASCII code and it is not that easy to remember because its a mix of numeric and special characters.
ES6 or the ECMAScript 2015 is the major edition of ECMAScript language, it introduced several new features which are very special to the developers
what are the new features among the various versions of ECMA script and what is difference
We can squash the number of commits from a git branch
Your focus-trap must have at least one container with at least one tabbable node in it at all times, when using dialog or modal in ReactJS or other front-end framework
Writing test cases for modal popup in jest
Cannot read property location of undefined, this is an common test cases error in react jest while using useLocation hook in your react component
There is a common problem when parsing the markdown file the ID attribute is missing in the element, here we found a solution to fix/overcome
It is basicall demonstrating how to find the fibanocci, amstrong, prime numbers and pyramid pattern using javascript.
Markdown is a lightweight markup language that you can use to add formatting elements to plaintext text documents.
There are few development tips for Javascript array operation, these tips will reduce your development time.
For every website the Sitemap will be playing important role for SEO performance. In Ecommerce and other consumer websites also SEO have important role for developing their revenue.
This question is very usual, to get solve this issue by using the browser property user agent to check whether the device type.
What are the possible ways to create objects in JavaScript, The traditional way to create an empty object is using the Object constructor. But currently this approach is not recommended.