Importing Images with React

Learn via video courses
Topics Covered

Overview

We often incorporate graphic components to attract users' attention while creating web applications with React. Any sort of image, such as JPGs, PNGs, GIFs, SVGs, and a wide variety of others, could be used for these visual components. Images may be required for your online application's user profile, banner, slider, thumbnail, and gallery. To display photos in ReactJS, you must first learn how to do it step by step. In this article, we'll look at the several approaches that could be taken to importing photos using React.

Introduction

React is a popular JavaScript library for building user interfaces. It provides a convenient way to include images in a React application by allowing developers to import images just like they would import any other module.

In modern web development, images play a crucial role in enhancing the user experience, making applications more visually appealing, and providing a more immersive experience for the user.

There are two main ways to import React images:

  • using the "import" statement or
  • using the "require" function.

The "import" statement is a standard ES6 (ECMAScript 6) feature that allows developers to include dependencies in their code. On the other hand, the "require" function is a commonJS feature that allows developers to include resources in their application dynamically at runtime. Apart from this, we can also display Images that are hosted Externally.

How to Display Images Hosted Externally?

To display a react image that is hosted on an external server in a React component, you can use the <img> HTML tag inside a component's render method. For example:

This will render a react image with the specified src URL in your React component. The alt attribute provides a text description of the image and is used for accessibility and as a fallback in case the image can't be loaded.

It's also a good idea to handle the case where the image fails to load by using the onError event and setting the src to a default fallback image, for example:

This way, if the image fails to load, the component will automatically display a fallback image instead.

How to Import Images with React?

Other than the external images, React uses images very differently from other frameworks or even HTML. Before being used in our application, these images must first be imported into React.

You can achieve this in one of two ways: by using the require() method or the import statement. We'll discuss both methods.

How to Import Images with React Using the Import Statement?

The most popular approach for importing locally stored react images is the import statement because it is simpler to read and comprehend. The images are imported in the same manner as components because they are treated as default exports. This is accomplished by stating the relative path from the file to the imported image:

It seems to be rather easy. But there's a lot in this code to unpack.

We first supply the relative path from the file to the image and consider the image as a default export. It's a convention to keep the most significant photos in the src folder.

In this example, we continue to make use of the element's src attribute (not to be confused with the folder). This time, though, a Logo variable rather than a string serves as the value for the src attribute.

Because of this, to read its value, we must use curly brackets. Curly braces are used in JSX to consider an expression as valid JavaScript code and to read the value of JavaScript variables.

How to Import Images with React Using the require() Function?

To incorporate external modules from files other than the current file, Node.js uses the require() function. It functions similarly to the import statement and enables the inclusion of images:

The first line, where we needed the image via its relative path and then saved it in a variable that we accessed in the img tag using curly brackets, is the only place where there is a difference. The require function is recommended when the image file is not required at the initial load of the application.

Since it's not compulsory, we can also choose to perform this inline instead of using an additional line to assign the image to a variable:

Some Tips While Importing Images in React

Here are some key tips to keep in mind while importing images in React:

  • Always use a relative file path for the image in the require() function, as it can only process relative file paths.
  • Make sure the image file is in the same directory as your component or in a subdirectory that can be reached using a relative path.
  • Use the alt attribute in the img tag to provide descriptive text for the image, in case the image fails to load. This helps with accessibility.
  • Use a consistent folder structure: Create a consistent folder structure for your images and keep them organized. This will make it easier to manage your images and reference them later.
  • When importing a logo or an image that doesn't change, it's a good practice to import it as a constant, this way it will be included in your bundle only once and reused in memory.
  • If you want to dynamically change the source of an image in response to some event or state change, you can use a variable for the src prop instead of a constant.
  • If the image is particularly large, consider using lazy loading to only load the image when it's needed, rather than all at once on the initial render.

Fuel Your Full-Stack Passion! Our Full Stack Web Development Course Blends JavaScript Brilliance with Back-End Craftsmanship. Ready to Dive In? Enroll Now!

Conclusion

  • Importing React images is a common task and can be done using the standard ES6 import statement.
  • To import an image, the path to the image file must be specified within the import statement.
  • Images can also be imported using the require() function which is used to dynamically include resources in the application at runtime.
  • The "require" function is recommended when the image file is not required at the initial load of the application.
  • It is important to consider the size and optimization of images to improve the performance of a React application.
  • The use of image placeholders, such as lazy loading, can also improve the performance and overall user experience of a React application.
  • In conclusion, importing images in React is a straightforward process that can be done using the import statement or require() function. The optimization of images is also an important aspect to consider for improving the performance of a React application.