--- id: jsx-in-depth-it-IT title: JSX in Profondità permalink: jsx-in-depth-it-IT.html prev: displaying-data-it-IT.html next: jsx-spread-it-IT.html --- [JSX](https://facebook.github.io/jsx/) è un'estensione della sintassi JavaScript che somiglia all'XML. Puoi usare una semplice trasformazione sintattica di JSX con React. ## Perché JSX? Non devi per forza utilizzare JSX con React. Puoi anche usare semplice JS. Tuttavia, raccomandiamo di utilizzare JSX perché usa una sintassi concisa e familiare per definire strutture ad albero dotate di attributi. È più familiare a sviluppatori occasionali come i designer. L'XML ha i benefici di tag di apertura e chiusura bilanciati. Ciò rende la lettura di grandi strutture ad albero più semplice di chiamate a funzione o oggetti letterali. Non altera la semantica di JavaScript. ## Tag HTML o Componenti React React può sia rendere tag HTML (stringhe) che componenti React (classi). Per rendere untag HTML, usa nomi di tag minuscoli in JSX: ```javascript var myDivElement =
; React.render(myDivElement, document.getElementById('example')); ``` Per rendere un componente React, definisci una variabile locale che comincia con una lettera maiuscola: ```javascript var MyComponent = React.createClass({/*...*/}); var myElement = ; React.render(myElement, document.getElementById('example')); ``` Il JSX di React utilizza la convenzione maiuscolo o minuscolo per distinguere tra classi di componenti locali e tag HTML. > Nota: > > Poiché JSX è JavaScript, gli identificatori come `class` e `for` sono sconsigliati > come nomi di attributi XML. Invece, i componenti DOM React si aspettano nomi di proprietà > come `className` e `htmlFor` rispettivamente. ## La Trasformazione Il JSX di React viene trasformato da una sintassi XML a JavaScript nativo. Gli elementi XML, gli attributi e i figli sono trasformati in argomenti passati a `React.createElement`. ```javascript var Nav; // Input (JSX): var app =