Logo

dev-resources.site

for different kinds of informations.

How React JSX Gets Transformed Into JavaScript Behind the Scenes

Published at
9/23/2024
Categories
jsx
javascript
react
babel
Author
kashif_ullah_dev
Categories
4 categories in total
jsx
open
javascript
open
react
open
babel
open
Author
16 person written this
kashif_ullah_dev
open
How React JSX Gets Transformed Into JavaScript Behind the Scenes

When you're writing React, you'll often see JSX – a syntax that looks like HTML within your JavaScript code. But have you ever wondered how this code runs in the browser?

Here's the magic: JSX is not valid JavaScript! Browsers can’t understand it directly. Behind the scenes, a tool like Babel steps in to convert (or "transpile") JSX into regular JavaScript.

The Process:

1.You write JSX – It looks like HTML but lives within your React components. For example:

const element = <h1>Hello, World!</h1>;
Enter fullscreen mode Exit fullscreen mode

2.Babel transforms it – During the build process, Babel converts the JSX into pure JavaScript using React.createElement:

const element = React.createElement('h1', null, 'Hello, World!');

Enter fullscreen mode Exit fullscreen mode

3.JavaScript in the browser – Finally, this standard JavaScript is what the browser executes, building the DOM dynamically.

How does Babel work?

Babel is a powerful JavaScript compiler that enables you to use the latest JavaScript features (including JSX in React) while ensuring compatibility across different browsers and environments. Here's a breakdown of how Babel works:
1.Parsing
Babel starts by parsing your modern JavaScript or JSX code into an Abstract Syntax Tree (AST). The AST is a detailed tree-like structure that represents the code in a way that's easy for Babel (and other tools) to analyze and manipulate. During this step, Babel reads the code but doesn’t change it yet.
For example, Babel takes this JSX code:

const element = <h1>Hello, World!</h1>;
Enter fullscreen mode Exit fullscreen mode

And generates an AST, which represents the structure of this code.
2.Transforming
Next, Babel applies a series of plugins to the AST. Each plugin is responsible for transforming specific parts of the AST according to the rules it defines. These transformations can include converting modern JavaScript syntax (like arrow functions or async/await) into older, browser-compatible versions.
For JSX, Babel transforms:

const element = <h1>Hello, World!</h1>;
Enter fullscreen mode Exit fullscreen mode
const element = React.createElement('h1', null, 'Hello, World!');
Enter fullscreen mode Exit fullscreen mode

3. Code Generation
Once all transformations are done, Babel generates JavaScript code from the transformed AST. This is the final step where the human-readable output is produced, which the browser or Node.js can execute.

Lets Conclude...

Why It Matters:

JSX allows you to write more intuitive, component-based UI code, but it's Babel and the JavaScript runtime that bring it to life. Understanding this conversion helps you troubleshoot better and write more optimized React apps.

babel Article's
30 articles in total
Favicon
Manual Setup (Custom Webpack/Babel configuration) with react (i am not able running it )
Favicon
Babel and Sourcemaps, Part-1
Favicon
Imagining React Without JSX: A Developer's Worst Nightmare
Favicon
Explorando org-babel en emacs
Favicon
Introduction to custom Babel plugins
Favicon
How React JSX Gets Transformed Into JavaScript Behind the Scenes
Favicon
Why react components starts with capital letter ?
Favicon
Fixing Jest import failure
Favicon
Comprehensive Analysis of Industry-standard Build Tools
Favicon
Making a Logging Plugin with Transpiler
Favicon
Mastering Project Maintainability with Module Resolver
Favicon
Understanding Webpack and Babel: Key Tools for Modern JavaScript Development
Favicon
How I optimized Carousel for EditorJS 2x in size.
Favicon
Let's Talk About Babel: Have you ever stopped to understand it?
Favicon
Setup Jest, Babel e testing library para testes unitários em React
Favicon
Setup Jest, Babel and testing library for unit testing in React
Favicon
Exploring Marvels of Webpack - Ep 1 - React Project without CRA
Favicon
What is Babel.js? Uses, Advantages, and Disadvantages
Favicon
The Comprehensive Guide to Babel
Favicon
Why to use babel ?
Favicon
Configuring StyleX in React application
Favicon
React Development Essentials: Webpack and Babel Introduction
Favicon
Abstract Syntax Trees and Practical Applications in JavaScript
Favicon
Create React App From Scratch With Isomorphic Rendering
Favicon
How React uses pragmas to run tests conditionally
Favicon
Unveiling the Artistry Behind JavaScript's Babel Engine: Transforming Code Across Frontiers
Favicon
Express & ES6 Boilerplate
Favicon
An introduction to Babel
Favicon
Building Cross-Browser Compatible Web Apps with Babel: A Step-by-Step Guide
Favicon
Configure Stimulus with esbuild and Babel — Rails & Javascript

Featured ones: