JS is a language describing logic and interaction. HTML is a language describing content, based on XML, which is meant to describe arbitrary data.
JSX, a shorthand for JS+XML, is these two languages put together into one. In JS, you can use numbers, strings, etc, but HTML code would cause errors. In JSX, HTML Code becomes a valid value that represents the actual HTML.
JSX is a combination of HTML and Javascript to put it simply, or as the official React site says: "a syntax extension of Javascript". It offers the functionality of writing Javascript expressions inside HTML elements which is then processed to create the UI.
e.g. this...
constnavBar=(<navclassName="bg-yellow"> Home </nav>);
Fo me JSX is a first selling pont of react (and nextjs). Because I can create any HTML releated stuffs at no time with simple js (ts) function, without need to know any template language syntax. I can use any js controll sequence for put together the view.
JSX also give good abstraction for view declaration.
// nextjs also can declare head elementsconstFooGameFrame=()=>{const[state,dispatch]=useSagaReducer(mainSaga,gameReducer,initialState);constarmy=getDispatchedActions(getActionsLookup(),dispatch);const{game,hero}=state;return(<sectionclassName='portal-root m-2'><MobilFrame><Head><title>Foo Game</title><metaname="viewport"content="initial-scale=1.0, width=device-width"/><linkrel="manifest"href="manifest.json"></link></Head>{game===GameMode.ROLL_CHARACTER&&<CreateHerostate={state}army={army}/>}{game===GameMode.ADVENTURE_ON_MAP&&<SingleAdventurestate={state}army={army}/>}{game===GameMode.BLOG&&<Blogname={hero?.name}avatar={hero?.avatar}/>}</MobilFrame>{game===GameMode.ADVENTURE_ON_MAP&&<CombatZonestate={state}army={army}/>}</section>);};
35+ years as a developer: Assembly, C, C++ & C# (in that order) with sidelines in ASP/VBScript, ASP.Net, JavaScript, Perl, VisualBasic, plus a few others.
JSX allows you to write HTML in JavaScript and is treated as a value, which is then compiled to JavaScript in which a function is called to represent the element specified. This code is usually then used in the browser to create virtual DOMs.
JSX is an extension to the JavaScript language, which aims to give a way to fully represent named objects, with their attributes, and their role in a hierarchy, all in one go.
It is not HTML, strictly speaking, but it does carry a lot of similarities, and, perhaps, even creates certain expectations that are not true.
Since JSX just represents an object, we can use that information to do a variety of things, from CLIs, Word Documents, Videos, Web UI, Mobile UI, etc., I for once have used it to make, albeit useless, forward calculation networks, that then I blend with React to render the results to a web UI.
It is pretty cool what one can achieve with JSX syntax.
JSX or TSX (for TypeScript) can be used in pure Javascript/TypeScript. It works perfectly without React.
It eases the creation of dynamic code e.g. filling a table with new rows
Some of these answers are too complex for a five year old to understand π
My attempt... JSX is like the instructions you get inside a box of lego that shows you how to build stuff. The lego box is your container and the blocks are you being creative and building something with it.
Just another developer trying to get his tests fast, his features to add value and his bloody code to compile! Lately I've been enjoying writing about the best way to release software!
JSX helps us tell the computer where all parts of a web page should go and what they will look like. It also lets us easily give the computer the information we want to show on the web page.
Oldest comments (28)
An abomination
Very informative! π
π
lol
JSX is just fancy HTML (With some rules) that compiles to
pureJavaScript. So if you write something like this:It will compile to something like this:
So now you can generate HTML with JavaScript. This is the basic idea behind JSX.
Great example! π
πWelldone
JSX stands for JavaScript XML. It is mostly used with React to describe what the UI should look like.
Love this! π₯
JS is a language describing logic and interaction. HTML is a language describing content, based on XML, which is meant to describe arbitrary data.
JSX, a shorthand for JS+XML, is these two languages put together into one. In JS, you can use numbers, strings, etc, but HTML code would cause errors. In JSX, HTML Code becomes a valid value that represents the actual HTML.
JSX is a combination of HTML and Javascript to put it simply, or as the official React site says: "a syntax extension of Javascript". It offers the functionality of writing Javascript expressions inside HTML elements which is then processed to create the UI.
e.g. this...
... gets converted into:
Thank you for sharing!
Se denomina JSX a la combinaciΓ³n de HTML y JS para dar lugar a un cΓ³digo mucho mas compacto y elegante.
bien dicho hermano
Fo me JSX is a first selling pont of react (and nextjs). Because I can create any HTML releated stuffs at no time with simple js (ts) function, without need to know any template language syntax. I can use any js controll sequence for put together the view.
JSX also give good abstraction for view declaration.
Certainly!
JSX is a syntax candy created by React
JSX takes HTML, a simple straightforward way to describe formatted text, and made it verbose, complex and confusing.
JSX allows you to write HTML in JavaScript and is treated as a value, which is then compiled to JavaScript in which a function is called to represent the element specified. This code is usually then used in the browser to create virtual DOMs.
JSX is an extension to the JavaScript language, which aims to give a way to fully represent named objects, with their attributes, and their role in a hierarchy, all in one go.
It is not HTML, strictly speaking, but it does carry a lot of similarities, and, perhaps, even creates certain expectations that are not true.
Since JSX just represents an object, we can use that information to do a variety of things, from CLIs, Word Documents, Videos, Web UI, Mobile UI, etc., I for once have used it to make, albeit useless, forward calculation networks, that then I blend with React to render the results to a web UI.
It is pretty cool what one can achieve with JSX syntax.
JSX or TSX (for TypeScript) can be used in pure Javascript/TypeScript. It works perfectly without React.
It eases the creation of dynamic code e.g. filling a table with new rows
Some of these answers are too complex for a five year old to understand π
My attempt... JSX is like the instructions you get inside a box of lego that shows you how to build stuff. The lego box is your container and the blocks are you being creative and building something with it.
Thank you for posting this! π
To a 5 year old? That's tough! Ok here goes:
JSX helps us tell the computer where all parts of a web page should go and what they will look like. It also lets us easily give the computer the information we want to show on the web page.
Amazing!