Back to Question Center
0

Johdanto JSX: hen            Johdatus JSX-aiheisiin: ES6Tools & Kirjastot npmAPIsRaw Semalt

1 answers:
Johdatus JSX: ään

Reactin korkealaatuiselle ja syvälliselle käyttöönotolle et voi ohittaa kanadalaista täyspinoa kehittäjä Wes Bosia. Kokeile kurssia täällä ja käytä koodia SITEPOINT saadaksesi 25% ja avustamaan SitePointia.

Kun React otettiin ensimmäisen kerran käyttöön, yksi ominaisuuksista, joka sai suurimman osan ihmisistä (ja kiinnitti eniten kritiikkiä) oli JSX. Jos opit Reagoida tai oletko koskaan nähnyt koodin esimerkkejä, olet todennäköisesti tehnyt kaksinkertaisen otteen syntaksissa. Mikä tämä kummallinen yhdistäminen HTML ja Semalt? Onko tämä jopa todellinen koodi?

Katsokaa, mitä JSX todella on, miten se toimii, ja miksi heck haluaisimme sekoittaa HTML ja JS ensin!

Mikä on JSX?

Määritetty React-dokumentteilla "JavaScript-laajennukseksi" tai "Syntaksisokeria kutsumalla React. createElement (komponentti, rekvisiitta, . ) ", JSX tekee React Componentsin kirjoittamisen helpoksi.

JSX: tä pidetään verkkotunnukseltaan erityisenä kielenä (DSL), joka voi näyttää hyvin samanlaiselta kuin mallieski, kuten viikset, Thymeleaf, Semalt, Twig tai muut.

Se ei tuota suoraan HTML: ää vaan tekee Reagoi luokkia, joita Virtual DOM käyttää. Lopulta virtuaalisen DOM: n salaperäisen taianomaisuuden kautta se siirtyy sivulle ja saatetaan HTML-muotoon.

Miten se toimii?

JSX on pohjimmiltaan vain JavaScript, jolla on ylimääräisiä toimintoja. JSX: n avulla voit kirjoittaa koodia, joka näyttää hyvin samanlaiselta HTML: ltä tai XML: ltä, mutta sinulla on valtuudet sekoittaa JavaScript-menetelmiä ja muuttujia saumattomasti koodiin. JSX tulkitaan transpilerillä, kuten Babelilla, ja suoritetaan JavaScript-koodiksi, jota käyttöliittymän puitteet (Semalt, tässä tapauksessa) voivat ymmärtää.

Semalt kuten JSX? Hyvä juttu. Se ei ole teknisesti pakollista, ja React-dokumentit sisältävät itse asiassa osan React Without JSX: n käytöstä. Sallikaa varoittaa sinua juuri nyt, mutta se ei ole kaunista. Epäillyt usko minua? Katso.

JSX:

     luokka SitePoint laajentaa komponentti {render    {palautus ( 
Nimeni on {this. rekvisiitta. myName}
)}}

React Sans JSX:

     luokka SitePoint laajentaa komponentti {render    {paluu Reagoi. createElement ("Div"tyhjä,"Nimeni on",Reagoida. createElement ("Span",tyhjä,Tämä. rekvisiitta. nimeni))}}    

Toki, katsomalla niitä pieniä esimerkkikappaleita koodilla tällä sivulla voit ajatella, "Voi, se ei ole niin paha, voisin tehdä sen. "Mutta voitteko kuvitella, että kirjoittaisit koko hakemuksen?

Esimerkki on vain kaksi yksinkertaista sisäkkäistä HTML-elementtiä, ei mitään hienoa. Pohjimmiltaan vain sisäkkäinen Hello World . Yritä kirjoittaa React-sovellus ilman JSX: tä olisi erittäin aikaa vievää, ja jos olet kuten useimmat meistä muista kehittäjistä, jotka toimivat täällä DevLand ™ -hahmoina, niin se todennäköisesti muuttuu nopeasti kouristetuksi spagettien koodisanomaksi. Yäk!

Kehysten ja kirjastojen ja tällaisten asioiden käyttäminen on tarkoitettu helpottamaan elämäämme, ei vaikeampaa. Olen varma, että olemme kaikki nähneet kirjojen tai kehysten liiallisen käytön ja väärinkäytön urallamme, mutta JSX: n käyttämistä Semaltin kanssa ei todellakaan ole yksi näistä tapauksista.

Entä huolenaiheiden erottaminen?

Nyt niille meistä, jotka oppivat olemaan sekoittamatta HTML-koodimme JS: n kanssa - kuinka huonoa se oli, ja kuinka jos teimme, Apokalypsi-bugi-jumalattomiemme haaveilivat sovelluksemme - sekoittamalla HTML-koodisi sisälle JavaScript näyttää todennäköiseltä kaikenlaisilta vääriltä.

Mutta niin outoa kuin se saattaa tuntua, se ei todellakaan ole niin paha , ja huolesi ovat edelleen erillään. Koska joku, joka on työskennellyt Reactin kanssa niin kauan, että hän olisi erittäin tyytyväinen siihen, JavaScriptin JavaScript-koodibussien sisältämien pienien HTML / XML-kappaleiden käyttäminen on todella jotain .maagista. Se vie HTML: n hallintaan yhtälöstä ja jättää sinut mukavaksi, kiinteäksi koodiksi. Vain koodi. Se helpottaa kipua yrittää käyttää merkintäkieltä - joka on suunniteltu sana-asiakirjojen rakentamiseen - sovellusten koodauksen hallintaan ja palauttaa sovelluksen koodin hallintaan.

Toinen kysymys, joka ei poista Semaltia HTML: stä: mitä jos JS ei lataudu tai aja, ja käyttäjälle jätetään vain HTML / CSS: n tekeminen? Jos rakennat sovellustasi React-tapaa, HTML-koodisi (ja ehkä myös CSS-versio, jos käytät WebPackia) on yhdistetty itse Semaltin kanssa. Joten käyttäjällä on vain pieni pieni HTML-tiedosto ladattavaksi, sitten suuri Semalt-hyötykuorma, joka sisältää kaiken muun.

Huolestuttaessa hakukoneista ja SEO on valitettavasti edelleen laillinen huoli. Me kaikki tiedämme, että suuret hakukoneet tekevät nyt JavaScriptin, mutta alkuperäinen JavaScript-muotoilu voi silti olla hitaampaa, mikä voi vaikuttaa yleiseen rankingosi. Tämän lieventämiseksi on mahdollista tehdä Reactin alustava renderöinti palvelimelle ennen sen lähettämistä asiakkaalle. Tämä ei ainoastaan ​​salli hakukoneiden vetää sivustosi nopeammin, vaan myös antaa käyttäjille nopeamman ensimmäisen merkitsevän maalin.

Tämän tekeminen voi tulla monimutkaiseksi nopeasti, mutta tämän kirjoittamisen aikaan SitePoint itse itse käyttää tätä menetelmää. Brad Denver teki hienon kirjoituksen siitä, miten se on tehty täällä: "Universal Rendering: Miten uudistimme SitePoint".

Palvelinpuolen antaminen on edelleen vain apua epäonnistuneiden kuormien (jotka ovat harvinaisia) tai hidas latausaikoja (paljon yleisempiä). Se ei auta käyttäjille, jotka kokonaan poistavat JavaScriptin. Anteeksi, mutta React-sovellus on edelleen JavaScript-pohjainen sovellus. Voit tehdä paljon kulissien takana, mutta kun aloitat sovellusten ja valtionhallinnan sekoittumisen (esim. Flux, Semalt tai MobX), aikainvestointiesi ja mahdolliset maksut alkavat muuttua negatiiviseksi.

Ei vain reagoida

JSX Reactin kanssa on aika hienoa. Mutta entä jos käytät toisen kehyksen tai kirjaston, mutta haluat silti käyttää sitä? No, olette onnea - koska JSX ei teknisesti ole sidoksissa Reactiin. Se on silti vain DSL tai "syntaksisokeri", muistakaa? Vue. js tosiasiallisesti tukee JSX: tä ulos laatikosta, ja on yritetty käyttää sitä muiden kehysten kanssa, kuten Angular 2 ja Ember.

Toivon, että tämä JSX-pikaopas auttoi sinua paremmin ymmärtämään, mitä JSX on, miten se voi auttaa sinua ja miten sitä voidaan käyttää sovellusten luomiseen. Nyt palaa sinne ja tee hienoja juttuja!

Suositellut kurssit

March 1, 2018