JSX

A Javascript XML sytnax

Bevezetés a JSX -be

Ha valaha is megvalósított egy webalkalmazást a „React.js” keretrendszerrel, akkor valószínűleg észrevette, hogy a React.js összetevők írásának szintaxisa egy kicsit más, mint a többi Javascript -kód. Bár többnyire ugyanaz, a React komponenseket speciális zárójelek, a bal és a jobb szögletes zárójel segítségével írják le. Úgy néznek ki, mint az XML szintaxisa, az „Extensible Markup Language”. A React.js -ben ezt a szintaxist hasonlóan „JSX” -nek nevezik, ami „Javascript XML” -t jelent.

Ennek a szintaxisnak a fő célja a React kód írásának egyszerűsítése. A JSX -kódot a JVM -ek nem tudják értelmezni, ezért használat előtt valódi Javascript -kódba kell lefordítani - ezt a feladatot általában olyan csomagok végzik, mint a Babel vagy a Webpack.

A React kód, amit valószínűleg soha nem írtál

Ez gyakorlatilag azt jelenti, hogy nagyon valószínű, hogy soha nem írt még ilyen „igaz” React.js összetevőket, amelyek a JSX kódból származnak. De ne aggódjon, ez könnyen elvégezhető sok gond nélkül. Valójában akár teljes React webes alkalmazást is írhat anélkül, hogy valaha is használna JSX -t. A következő kódrészlet megmutatja, hogyan néz ki egy valóban React.js összetevő, amely csak Javascript -et tartalmaz.

// A common JSX-element.

<Header title="Lorem ipsum" variant="primary">
  I am a subtitle
</Header>

//
// ...
//

// After the compilation step:

React.createElement(
  Header,
  {title: 'Lorem ipsum', variant: "primary"},
  'I am a subtitle'
);

Ezt akár böngészőjében is kipróbálhatja, szoftver telepítése nélkül! Csak görgessen lefelé az oldal végéig a kiegészítésben található link használatához.

A JSX használata a kód egyszerűsítésére

Amint láthatja, a JSX-szintaxis fő előnye, hogy egyszerűbbé teszi a felhasználói felülethez kapcsolódó kód írását, és könnyebben megkülönböztethető az alkalmazás más részeitől, mivel az XML-szerű szintaxis egyértelműen jelzi a kód tartományát.

A JSX másik nagy jellemzője, hogy a fordítási lépés után csak kifejezéssé válik. Ezért használhatja if-else-utasításokban, vagy akár eltárolhatja eredményét egy változóban. És mivel a React.js komponensek maguk is tartalmazhatnak kifejezéseket gyermekkorukban, nagyon jól összeállítható felhasználói felületet írhat!

Alapértelmezett importálás minden JSX-fájlhoz

Lehet, hogy észrevette, hogy minden JSX-fájl különböző oktatóanyagokban, útmutatókban és valószínűleg még a saját kódjában is az alapértelmezett importálás a React-könyvtárból, annak ellenére, hogy ezt az importált változót soha nem hívhatja meg közvetlenül. Ennek oka az, hogy a fordítási lépés után minden JSX-kifejezés „React.createElement” hívássá válik, amint azt a kódpéldában már láthattuk. Ezért szükséges, hogy az alapértelmezett importálásból származó „React” változó szerepeljen minden fájl hatókörében.

HTML -nek tűnik, de nem az

Az egyik kulcskorlátozó a JSX-szintaxisban történő kódoláskor a komponens nevének jelölése. Ahhoz, hogy a kötegelő helyesen azonosítsa az összetevőit, egyedinek kell lenniük a szabványos HTML-címkékhez képest, mivel a szintaxis ugyanúgy néz ki.

// 1. A valid example.
function Header(props){
  return (
    <div>
      <h1>{props.title}</h1>
      {props.children}
    </div>
  );
}

// 2. Invalid, only uppercase for React elements.
function header(props){
  return (
    // ...
  );
}

// 3. Invalid, only uppercase 
// when calling React components.
function Page(props){
  // Notice the invalid 'layout':
  return (
    <div style={{ margin: 12 }}>
      <layout>{/* ... */}</layout/>
    </div>
  );
}

Ezért kötelező a JSX elemek kódolása mindig a mondat kis- és nagybetűiben, ami azt jelenti, hogy az első betűnek nagybetűsnek kell lennie.

A gépíró változat

Lehet, hogy észrevette, hogy sok projekt a TSX -t is használja a React.js összetevő fájlok utótagjaként. Ez csak az eredeti JSX kiterjesztése, hogy kompatibilis legyen a Typescript -el. A TSX-fájlok lehetővé teszik a Typescript kód írását a JSX-jelölési összetevőkkel együtt.

Csak a kezdet

Ez a cikk a JSX egyszerű bevezetését nyújtotta a React komponensek kódolásához. A fő előny egy nagyon tömör szintaxis, amely természetesnek érzi magát egy webes környezetben. Nagyon kompozit elemeket írhat nagyon kevés kóddal, ami kétségkívül a React jelenlegi híres és népszerű állapotának egyik kulcsfontosságú tényezője. Ha kíváncsi, a React csapata sokkal több és kiváló részletes útmutatót tartalmaz a webhelyén, a linkek az oldal végén található kiegészítésben találhatók.

Javaslatok

Kapcsolódó

Kiegészítés

Nyelvek