Menu
Home Explore People Places Arts History Plants & Animals Science Life & Culture Technology
On this page
JSX (JavaScript)
Extension to the JavaScript syntax used by React.js, Vue, and similar frameworks to describe HTML elements as XML literals in JavaScript code

JSX (sometimes referred to as JavaScript XML) is an XML-like extension to the JavaScript language syntax. Initially created by Facebook for use with React, JSX has been adopted by multiple web frameworks.: 5 : 11  Being a syntactic sugar, JSX is generally transpiled into nested JavaScript function calls structurally similar to the original JSX.

We don't have any images related to JSX (JavaScript) yet.
We don't have any YouTube videos related to JSX (JavaScript) yet.
We don't have any PDF documents related to JSX (JavaScript) yet.
We don't have any Books related to JSX (JavaScript) yet.
We don't have any archived web articles related to JSX (JavaScript) yet.

Markup

An example of JSX code:

const App = () => { return ( <div> <p>Header</p> <p>Content</p> <p>Footer</p> </div> ); }

Nested elements

Multiple elements on the same level need to be wrapped in a single React element such as the <div> element shown above, a fragment delineated by <Fragment> or in its shorthand form <>, or returned as an array.456: 68–69 

Attributes

JSX provides a range of element attributes designed to mirror those provided by HTML. Custom attributes can also be passed to the component.7 All attributes will be received by the component as props.

JavaScript expressions

JavaScript expressions (but not statements) can be used inside JSX with curly brackets {}:8: 14–16 

<h1>{10+1}</h1>

The example above will render:

<h1>11</h1>

Conditional expressions

If–else statements cannot be used inside JSX but conditional expressions can be used instead. The example below will render { i === 1 ? 'true' : 'false' } as the string 'true' because i is equal to 1.

const App = () => { const i = 1; return ( <div> <h1>{ i === 1 ? 'true' : 'false' }</h1> </div> ); }

The above will render:

<div> <h1>true</h1> </div>

Functions and JSX can be used in conditionals:9: 88–90 

const App = () => { const sections = [1, 2, 3]; return ( <div> {sections.map((n,i) => ( /* 'key' is used by React to keep track of list items and their changes */ /* Each 'key' must be unique */ <div key={"section-" + n}> Section {n} {i === 0 && <span>(first)</span>} </div> ))} </div> ); }

The above will render:

<div> <div>Section 1<span>(first)</span></div> <div>Section 2</div> <div>Section 3</div> </div>

Code written in JSX requires conversion with a tool such as Babel before it can be understood by web browsers.1011: 5  This processing is generally performed during a software build process before the application is deployed.

See also

References

  1. "Draft: JSX Specification". JSX. Facebook. Retrieved 7 April 2018. https://facebook.github.io/jsx/

  2. Larsen, John (2021). React Hooks in Action With Suspense and Concurrent Mode. Manning. ISBN 978-1720043997. 978-1720043997

  3. Wieruch, Robin (14 September 2018). The Road to React. Leanpub. ISBN 978-1720043997. 978-1720043997

  4. Clark, Andrew (September 26, 2017). "React v16.0§New render return types: fragments and strings". React Blog. https://reactjs.org/blog/2017/09/26/react-v16.0.html#new-render-return-types-fragments-and-strings

  5. "React.Component: render". React. https://reactjs.org/docs/react-component.html#render

  6. Wieruch, Robin (14 September 2018). The Road to React. Leanpub. ISBN 978-1720043997. 978-1720043997

  7. Clark, Andrew (September 26, 2017). "React v16.0§Support for custom DOM attributes". React Blog. https://reactjs.org/blog/2017/09/26/react-v16.0.html#support-for-custom-dom-attributes

  8. Wieruch, Robin (14 September 2018). The Road to React. Leanpub. ISBN 978-1720043997. 978-1720043997

  9. Wieruch, Robin (14 September 2018). The Road to React. Leanpub. ISBN 978-1720043997. 978-1720043997

  10. Fischer, Ludovico (2017-09-06). React for Real: Front-End Code, Untangled. Pragmatic Bookshelf. ISBN 9781680504484. 9781680504484

  11. Larsen, John (2021). React Hooks in Action With Suspense and Concurrent Mode. Manning. ISBN 978-1720043997. 978-1720043997