JSX (JavaScript XML), formalmente JavaScript Syntax eXtension, es una extensión de JavaScript que permite la creación de árboles DOM usando una sintaxis similar a XML.[1]​ Inicialmente creado por Facebook para ser usado con React, JSX ha sido utilizado por muchos otros frameworks web.[2]: 5 [3]: 11  Generalmente, JSX es transpilado a llamadas a funciones de JavaScript anidadas con una estructura similar a la del JSX original.

Marcado

editar

Un ejemplo de código JSX:

const App = () => {
   return (
     <div>
       <p>Encabezado</p>
       <p>Contenido</p>
       <p>Pie</p>
     </div>
   ); 
}

Elementos anidados

editar

Si se tienen muchos elementos en un mismo nivel, se deben envolver en un solo elemento React, como en el ejemplo anterior, donde se usó <div> para ello, o un fragmento de React, sea <Fragment>, or en su forma abreviada <>, o como un array.[4][5][3]: 68–69 

Atributos

editar

JSX provee una variedad de atributos de elemento diseñados para representar los que ya trae HTML, y además, se pueden usar atributos propios en el componente.[6]​ Todos los atributos serán recibidos por el componente como propiedades.

Expresiones JavaScript

editar

Las expresiones de JavaScript (pero no las sentencias) pueden ser usadas dentro de JSX colocándolas dentro de llaves:[3]: 14–16 

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

El ejemplo anterior se renderizará como:

  <h1>11</h1>

Expresiones condicionales

editar

La sentencias Sí-Entonces no pueden ser usadas dentro de JSX, pero sí expresiones condicionales. El ejemplo siguiente renderizará { i === 1 ? 'true' : 'false' } como la cadena 'true', porque i es igual a 1.

const App = () => {
   const i = 1;

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

Lo anterior será renderizado así:

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

Las funciones y JSX pueden ser usados en condicionales:[3]: 88–90 

const App = () => {
   const sections = [1, 2, 3];

   return (
     <div>
       {sections.map((n,i) => (
           /* 'key' es usada por React para mantener una lista de elementos y sus cambios */
           /* Cada 'key' debe ser única */
           <div key={"section-" + n}>
               Sección {n} {i === 0 && <span>(primera)</span>}
           </div>
       ))}
     </div>
   );
}

Lo anterior se renderizará como:

<div>
  <div>Sección 1<span>(primero)</span></div>
  <div>Sección 2</div>
  <div>Sección 3</div>
</div>

El código escrito en JSX requiere herramientas de conversión como Babel antes de que pueda ser entendido por los navegadores web.[7][8]: 5  Esta conversión generalmente se realiza durante la fase de compilación, antes de que sea desplegado.

Referencias

editar
  1. «Draft: JSX Specification». JSX. Facebook. Consultado el 7 de abril de 2018. 
  2. Larsen, John (2021). React Hooks in Action With Suspense and Concurrent Mode. Manning. ISBN 978-1720043997. 
  3. a b c d Wieruch, Robin (14 de septiembre de 2018). The Road to React. Leanpub. ISBN 978-1720043997. 
  4. Clark, Andrew (26 de septiembre de 2017). «React v16.0§New render return types: fragments and strings». React Blog. 
  5. «React.Component: render». React. 
  6. Clark, Andrew (26 de septiembre de 2017). «React v16.0§Support for custom DOM attributes». React Blog. 
  7. Fischer, Ludovico (6 de septiembre de 2017). React for Real: Front-End Code, Untangled (en inglés). Pragmatic Bookshelf. ISBN 9781680504484. 
  8. Larsen, John (2021). React Hooks in Action With Suspense and Concurrent Mode. Manning. ISBN 978-1720043997. 

📚 Artikel Terkait di Wikipedia

JSX

estadounidense regional Jakarta Stock Exchange o JSX, siglas en inglés para la Bolsa de Yakarta, JSX (JavaScript), una extensión a la sintaxis de JavaScript

Babel (compilador)

en ES6, se convierten en funciones regulares.​ Sintaxis no estándar como JSX también puede ser transformada.​​ Babel puede inyectar automáticamente polyfills

Conjunto de soluciones (informática)

utilizada para crear aplicaciones React se llama JSX (JavaScript XML), que es una extensión de sintaxis de JavaScript . Node.js Rosenblatt, B. (2011). "Web services:

React

React (también llamada React.js o ReactJS) es una biblioteca Javascript de código abierto diseñada para crear interfaces de usuario con el objetivo de

Svelte

una sintaxis de plantillas similar a JSX . Svelte reutiliza la sintaxis destinada para etiquetas en JavaScript $: para marcar declaraciones reactivas

Vue.js

conocido como Vue; se pronuncia /vjuː/, como "view"​) es un framework de JavaScript de código abierto para la construcción de interfaces de usuario y aplicaciones

Astro (framework)

Astro es un framework de aplicaciones web basado en JavaScript de código abierto. Fue creado por Fred K. Schott y varios colaboradores, quienes a día de

Next.js

marco admite CSS común, así como Scss y Sass precompilados, CSS-in-JS y JSX con estilo.​ Además, está construido con soporte de TypeScript y empaquetado