JSX (JavaScript XML) permite scrierea de markup direct in JavaScript. Desi arata ca HTML, exista cateva diferente importante:
| HTML | JSX | Motiv |
|---|---|---|
class="btn" | className="btn" | class e cuvant rezervat in JS |
for="email" | htmlFor="email" | for e cuvant rezervat in JS |
onclick="fn()" | onClick={fn} | CamelCase + expresie JS |
style="color: red" | style={{color: 'red'}} | Obiect JS, nu string |
| Tag-uri neanchise OK | Toate tag-urile inchise | <img /> obligatoriu |
Reguli JSX fundamentale:
- Un singur element root - fiecare componenta returneaza un singur element parinte (folositi
<div>sau<>...</>Fragment) - Expresii JS in acolade -
{variabila},{conditie ? 'da' : 'nu'} - Atribute camelCase -
className,onClick,htmlFor - Toate tag-urile se inchid - inclusiv
<img />,<br />,<input />