Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

How to export if we use function component in ReactJS

Introduction to ReactJS

Before diving into the main topic, let's briefly introduce ReactJS. ReactJS, often simply called React, is a popular JavaScript library for building user interfaces, particularly for single-page applications. You can think of it as a tool for building Lego-like applications where each piece, or component, can stand on its own or be combined with others to create an entire structure.

Understanding Function Components in React

In React, a component is a reusable piece of your application's user interface (UI). There are two types of components in React: Class Components and Function Components.

Today, we'll focus on Function Components, which are a simpler and more straightforward way to create components in React. Think of a Function Component as a factory that takes in some information and spits out a piece of the UI.

Here's a simple example of a Function Component:

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

In this example, Welcome is a function component that accepts an object of properties (often referred to as props) and returns a React element. It's a pure function because it doesn't attempt to change its inputs, and always returns the same result for the same props.

The Concept of Exporting in JavaScript

Before we talk about how to export Function Components, let's understand what "exporting" means in the context of JavaScript. In JavaScript, modules are individual units of code that can be imported and used in other programs. The export keyword is used to expose parts of published code to other modules.

Think of it as a small stand at a farmers market. The goods (or in this case, code) that you want to sell (or make available for use) are displayed on the counter (exported), while the rest remains behind the scenes.

Exporting Function Components in React

Now, when it comes to exporting a Function Component in React, the process is quite simple.

Let's take a look at an example. Let's say we want to export the Welcome component that we defined earlier. Here's how we can do it:

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

export default Welcome;

In this code, export default Welcome; is making the Welcome function accessible to other modules. The default keyword means that Welcome is the default (and only) export of this module.

This way, we can import the Welcome component in another file like this:

import Welcome from './Welcome';

Here, ./Welcome is the path to the file where the Welcome component is defined.

Named Exports vs Default Exports

JavaScript module system allows for both named and default exports.

A default export is an export that's been designated as the main export from a module. A module can only have one default export, but it can have multiple named exports.

On the contrary, a named export is an export that can be imported using the name of the variable, function, or class within curly braces { } and can be different from the name inside the module.

Here's an example of named export:

function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}

export { Welcome };

And here's how you would import a named export:

import { Welcome } from './Welcome';

The key difference is that while importing, named exports need to be destructured using {}, whereas default exports do not.

Wrapping Up

In conclusion, "exporting" in JavaScript is a way to make pieces of your code available to other parts of your application using the export keyword. In React, you can export function components to reuse them across your application, leading to cleaner and more maintainable code.

Remember, the concept of exporting and importing may seem a bit abstract at first, but with practice, it becomes second nature. So, keep practicing, and happy coding!