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.


w3schools CERTIFIED . 2022

Word gesertifiseer!

Voltooi die React-modules, doen die oefeninge, neem die eksamen en word w3schools-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 divelement.

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 classkenmerk is 'n veelgebruikte kenmerk in HTML, maar aangesien JSX as JavaScript weergegee word, en die classsleutelwoord 'n gereserveerde woord in JavaScript is, word jy nie toegelaat om dit in JSX te gebruik nie.

classNameGebruik eerder kenmerk .

JSX het dit opgelos deur in classNameplaas daarvan te gebruik. Wanneer JSX gelewer word, vertaal dit className eienskappe in classeienskappe.

Voorbeeld

Gebruik kenmerk classNamein plaas van classin JSX:

const myelement = <h1 className="myclass">Hello World</h1>;


Voorwaardes - indien stellings

React ondersteun ifstellings, 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 ifstellings buite die JSX-kode:

Voorbeeld

Skryf "Hallo" as xminder 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 xminder 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, {}.


Toets jouself met oefeninge

Oefening:

Gee 'n <p>-element sonder om JSX te gebruik.

const paragraph = React.createElement(, {}, 'This is a paragraph without using JSX!');

ReactDOM.render(paragraph, document.getElementById('root'));