What is the Arrow Function in ReactJS?

React is a popular JavaScript library used to build user interface components. One of the features of React is that it allows you to use arrow functions to define React components.

You may now create components using both the standard JavaScript function and the arrow function syntax, thanks to the release of ES6 arrow function syntax.

Lets discuss what arrow functions are and why you should use them in your ReactJS code −

About Arrow Functions

The arrow function is a new feature of ES6, introduced in ReactJS 16. It allows the developer to create a function that has lexical “this” binding and no arguments.

Arrow functions offer a compressed and short version of a function expression and need fewer keystrokes than regular JavaScript functions from the developer and can be used as a simpler alternative to functions within class components and functional components and event handlers in React.

Arrow functions are always anonymous, meaning there is no need to use the keyword “function” when defining them. They also do not have their own this value, meaning that this inside an arrow function will refer to the one where it was created rather than where it was called from.

The third difference between regular JavaScript functions and arrow functions is that all arguments passed into an arrow function must be pre−defined, because there is no need for them to be assigned as default values like with regular JavaScript functions.

Syntax of an Arrow Function

An arrow function expression is a JavaScript expression that has a shorter syntax than the function keyword. It is designed for situations where you want to create a one−line anonymous function expression, like in event handlers.


It can be used as a more concise replacement for the following −

let handleClick = function(parameter) { return something }; handleClick();


The arrow function expression syntax for the above function is as follows −

let handleClick = (parameter) => { something };

An arrow function expression always has a single parameter, following the => token, and then an expression or statement within parentheses that follow the return value using the parameter.

They have lexical scoping and do not have their own this context or arguments object like traditional functions do.

Parentheses are still necessary if the function accepts more or fewer arguments, even though one argument functions do not require them.

When to use Arrow Functions?

Arrow functions are great for performance and making declarative code more readable.

Although they are not always the best choice, they do have some advantages that make them worth considering.

In answer to the question, When to use them?, here are some scenarios −

  • When you need to bind this to a method

  • When you want a method to be called on a component's props

  • When you want to use a callback function

Why Should You Use Arrow Functions in React?

React is an open−source, declarative JavaScript library for creating user interfaces which enables you to build intricate user interfaces out of isolated, little chunks of code known as "components.”

Arrow functions are one of the many things that make React code more concise and easier to read. When used correctly, they can help your code become more declarative and easier to understand. They are a concise way to write functions that do not have their own this, arguments, or new.Target. This means that they are not suited for use as methods in objects or classes.

There are several benefits to using arrow functions in ReactJS.

  • First, they are much simpler to write and understand than traditional function expressions. This can make your code more readable and easier to debug.

  • Second, arrow functions do not create a new scope, so they can be used in ReactJS without polluting the global scope.

  • Finally, arrow functions can be used as arguments to other functions, which can make your code more flexible and expressive.

If you're not already using arrow functions in ReactJS, then you should consider doing so.

Use Cases of Arrow Functions

There are a few different use cases for arrow functions in ReactJS.

  • One is for defining functions that will be passed as props to child components. This is often seen when the parent component needs to pass a callback function to the child component.

  • Another use case is for inline functions that are defined inside of the render method. This is often seen when a function needs to be passed as an argument to another function.

  • They also allow for use of ternary operators which can be used instead of switch statements or if−else blocks when more than one condition needs to be handled.

  • As React provides a few built−in Hooks like useState, you can use the arrow function syntax in handle events like mentioned here −


import React, { useState } from 'react'; function Example() { // Declare a new state variable, which we'll call "count" const [count, setCount] = useState(0); return ( <div> <p>You clicked {count} times</p> <button onClick={()=> setCount(count + 1)}>Click me</button> </div> ); }

Pros & Cons

Let’s take a look at the pros and cons of arrow functions in React.js so that you can make an informed decision about whether or not to use them in your own projects.

They have a number of advantages over traditional function definitions, such as −

  • Less verbose than traditional function definitions.

  • Can implicitly return values, which means you don't need to use the keyword return.

  • Lexically bind the value of this from its enclosing scope, which means you don't need to use the keyword bind.

Yes, arrow functions will help a lot in writing clean JavaScript code. But that doesn't mean they are the answer to everything and they might not be best for every situation. In some cases, they can make your code less performant, and they can also make debugging more difficult.

For example, they are good for single−line expressions, but if you need a multi−line function it might become problematic when nesting one function inside another. You could always use an anonymous self−executing function (aka IIFE), which would serve the same purpose as an arrow function, but with more options for organizing your code.

Some other disadvantages include

  • Not suitable for methods that need to be bound to an instance, such as the render method.

  • Cannot be used as constructors.

Ultimately, it's up to you to decide whether the benefits of arrow functions outweigh the potential drawbacks.

Wrap Up

Overall, arrow functions are a good and efficient substitute for function expressions and provide a concise way to handle both local variables and parameters in React JS.

However, it is important to remember that they are not always the best choice − in some cases, regular functions may be more appropriate.