bugl
bugl
HomeLearnPatternsSearch
HomeLearnPatternsSearch

Loading lesson path

Learn/React/React Core
React•React Core

React JSX

Concept visual

React JSX

Graph traversalgraph
ABCDE
current
queued
1
4

Start from A

What is JSX?

JSX stands for JavaScript XML. JSX allows us to write HTML in React. JSX makes it easier to write and add HTML in React.

Coding JSX

JSX allows us to write HTML elements in JavaScript and place them in the DOM without any createElement()

Formula

and/or appendChild()

methods. JSX converts HTML tags into react elements. You are not required to use JSX, but JSX makes it easier to write React applications. Here are two examples. The first uses JSX and the second does not:

Example 1

JSX:

const myElement = <h1>I Love JSX!</h1>;

createRoot(document.getElementById('root')).render( myElement

);

Run

Example »

Example 2

Without JSX:

const myElement = React.createElement('h1', {}, 'I do not use JSX!');

createRoot(document.getElementById('root')).render( myElement

);

Run

Example » As you can see in the first example, JSX allows us to write HTML directly within the JavaScript code. JSX is an extension of the JavaScript language based on ES6, and is translated into regular JavaScript at runtime.

Expressions in JSX

With JSX you can write expressions inside curly braces

{ }.

The expression can be a React variable, or property, or any other valid JavaScript expression. JSX will execute the expression and return the result:

Example

Execute the expression

Formula

5 + 5
const myElement = <h1>React is {5 + 5} times better with JSX</h1>;

Run

Example »

Inserting a Large Block of HTML

To write HTML on multiple lines, put the HTML inside parentheses:

Example

Create a list with three list items:

const myElement = (

<ul>

Formula

< li > Apples </li >
< li > Bananas </li >
< li > Cherries </li >

</ul>

);

Run

Example »

One Top Level Element

The HTML code must be wrapped in

One

top level element. So if you like to write two paragraphs, you must put them inside a parent element, like a div element.

Example

Wrap two paragraphs inside one DIV element:

const myElement = (

<div>

Formula

< p > I am a paragraph.</p >
< p > I am a paragraph too.</p >

</div>

);

Run

Example » JSX will throw an error if the HTML is not correct, or if the HTML misses a parent element. Alternatively, you can use a "fragment" to wrap multiple lines. This will prevent unnecessarily adding extra nodes to the DOM. A fragment looks like an empty HTML tag: <></>.

Example

Wrap two paragraphs inside a fragment:

const myElement = (

<>

Formula

< p > I am a paragraph.</p >
< p > I am a paragraph too.</p >

</>

);

Run

Example »

Elements Must be Closed

JSX follows XML rules, and therefore HTML elements must be properly closed.

Example

Previous

React ES6 Modules

Next

React JSX Expressions