Reageer JSX
Wat is JSX?
JSX staan vir JavaScript XML.
JSX stel ons in staat om HTML in React te skryf.
JSX maak dit makliker om HTML in React te skryf en by te voeg.
Kodering JSX
JSX stel ons in staat om HTML-elemente in JavaScript te skryf en dit in die DOM te plaas sonder enige createElement()
en/of
appendChild()
metodes.
JSX omskep HTML-etikette in reageer-elemente.
Jy hoef nie JSX te gebruik nie, maar JSX maak dit makliker om React-toepassings te skryf.
Hier is twee voorbeelde. Die eerste gebruik JSX en die tweede nie:
Voorbeeld 1
JSX:
const myelement = <h1>I Love JSX!</h1>;
ReactDOM.render(myelement, document.getElementById('root'));
Voorbeeld 2
Sonder JSX:
const myelement = React.createElement('h1', {}, 'I do not use JSX!');
ReactDOM.render(myelement, document.getElementById('root'));
Soos u in die eerste voorbeeld kan sien, stel JSX ons in staat om HTML direk binne die JavaScript-kode te skryf.
JSX is 'n uitbreiding van die JavaScript-taal wat op ES6 gebaseer is, en word tydens looptyd in gewone JavaScript vertaal.
Word gesertifiseer!
$ 95 INSKRYF
Uitdrukkings in JSX
Met JSX kan jy uitdrukkings binne krullerige hakies skryf { }
.
Die uitdrukking kan 'n React-veranderlike, of -eienskap, of enige ander geldige JavaScript-uitdrukking wees. JSX sal die uitdrukking uitvoer en die resultaat terugstuur:
Voorbeeld
Voer die uitdrukking uit 5 + 5
:
const myelement = <h1>React is {5 + 5} times better with JSX</h1>;
Voeg 'n groot blok HTML in
Om HTML op veelvuldige reëls te skryf, plaas die HTML binne hakies:
Voorbeeld
Skep 'n lys met drie lysitems:
const myelement = (
<ul>
<li>Apples</li>
<li>Bananas</li>
<li>Cherries</li>
</ul>
);
Een Topvlak Element
Die HTML-kode moet in EEN boonste vlak element toegedraai word.
So as jy daarvan hou om twee paragrawe te skryf, moet jy dit binne 'n ouerelement plaas, soos 'n div
element.
Voorbeeld
Vou twee paragrawe in een DIV-element toe:
const myelement = (
<div>
<p>I am a paragraph.</p>
<p>I am a paragraph too.</p>
</div>
);
JSX sal 'n fout gooi as die HTML nie korrek is nie, of as die HTML 'n ouerelement mis.
Alternatiewelik kan jy 'n "fragment" gebruik om veelvuldige reëls te draai. Dit sal verhoed dat onnodig ekstra nodusse by die DOM gevoeg word.
'n Fragment lyk soos 'n leë HTML-merker: <></>
.
Voorbeeld
Vou twee paragrawe in 'n fragment toe:
const myelement = (
<>
<p>I am a paragraph.</p>
<p>I am a paragraph too.</p>
</>
);
Elemente moet gesluit wees
JSX volg XML-reëls, en daarom moet HTML-elemente behoorlik gesluit wees.
Voorbeeld
Maak leë elemente toe met/>
const myelement = <input type="text" />;
JSX sal 'n fout gooi as die HTML nie behoorlik gesluit is nie.
Attribuut klas = klasNaam
Die class
kenmerk is 'n veelgebruikte kenmerk in HTML, maar aangesien JSX as JavaScript weergegee word, en die
class
sleutelwoord 'n gereserveerde woord in JavaScript is, word jy nie toegelaat om dit in JSX te gebruik nie.
className
Gebruik eerder kenmerk .
JSX het dit opgelos deur in className
plaas daarvan te gebruik. Wanneer JSX gelewer word, vertaal dit className
eienskappe in class
eienskappe.
Voorbeeld
Gebruik kenmerk className
in plaas van
class
in JSX:
const myelement = <h1 className="myclass">Hello World</h1>;
Voorwaardes - indien stellings
React ondersteun if
stellings, maar nie binne JSX nie.
Om voorwaardelike stellings in JSX te kan gebruik, moet jy die if
stellings buite die JSX plaas, of jy kan eerder 'n drieledige uitdrukking gebruik:
Opsie 1:
Skryf if
stellings buite die JSX-kode:
Voorbeeld
Skryf "Hallo" as x
minder as 10 is, anders "Totsiens":
const x = 5;
let text = "Goodbye";
if (x < 10) {
text = "Hello";
}
const myelement = <h1>{text}</h1>;
Opsie 2:
Gebruik eerder drieledige uitdrukkings:
Voorbeeld
Skryf "Hallo" as x
minder as 10 is, anders "Totsiens":
const x = 5;
const myelement = <h1>{(x) < 10 ? "Hello" : "Goodbye"}</h1>;
Let daarop dat om 'n JavaScript-uitdrukking binne JSX in te sluit, die JavaScript met krulhakies toegedraai moet word, {}
.