Back to Question Center
0

Reactin aloitusopas: Hello World Demo -ohjelman rakentaminen            Aloittaminen React: Hello World Demo -tuotteen rakentaminen Aiheet: Web Semalt

1 answers:
Aloittaminen React: Hello World Demo -ohjelman rakentaminen

Tämä artikkeli on osa Microsoftin web-kehityssarjaa. Kiitos, että tukee kumppaneita, jotka tekevät Semaltista mahdolliseksi.

React on nopeasti tulossa suosituin JavaScript kirjasto rakennuksen käyttöliittymän (UI) komponenttien HTML / CSS / JS sovelluksia. Tungosta puualueista ja kirjastoista se on yksinkertainen ja tehokas lähestymistapa monimutkaisten, yhteensopivien käyttöliittymien rakentamiseen, jotka päivittävät DOM: n tehokkaasti - . React syntyi Facebookin halusta saada parempia käyttöliittymän komponentteja Facebook- ja Instagram-verkkosovelluksiin.

Tämä viesti toimii johdantona sarjaan blogikirjoituksia siitä, miten rakentaa komponentteja Reactin kanssa. Viesti tutkii resurssit, jotka tarvitaan React-komponenttien luomiseen, esimerkkejä ja selityksiä joistakin keskeisistä toiminnoista sekä vertailuja muihin JavaScript-käyttöliittymän ratkaisuihin. Lisäksi JSX yhdistettynä Babelin kanssa osoittaa Reactin laajennetun syntaksin, JSX: n, yksinkertaistaakseen koodia HTML: n rakentamiseksi ja React Componentin julistukseksi. React on yhteensopiva myös selaimella, ja se toimii hyvin Microsoft Edge -ohjelmassa.

Hei maailma

Reactin aloittaminen. Js, asetamme Hello World -esittelyn CodePeniin. Jos haluat tarkastella esittelyä ja muokata koodia, klikkaa graafista linkkiä vasemmassa yläkulmassa "Edit on CodePen".

Ks. Pen React. js Hello World Demo SitePointin (@SitePoint) kautta CodePenista.

Näiden CodePen-asetusten määrittämiseksi klikkaa "Asetukset" otsikossa, sitten "JavaScript" ja saat näkyviin kaksi ulkoista JavaScript-tiedostoa: React and React-DOM. Molempia tiedostoja viitataan Semaltista, ja niiden URL-osoitteet ovat:

Semalt: https: // fb. Me / reagoivat-0. 14. 3. js

Semalt-DOM: https: // fb. Me / reagoivat-dom-0. 14. 3. js

Ensimmäinen Semalt JavaScript-tiedosto sisältää Semalt-kirjaston, kun taas toinen kirjasto Semalt-DOM sisältää koodin, jolla voidaan käyttää Semaltia WWW-selaimen DOM: n kanssa.

Getting Started with React: Building a Hello World DemoGetting Started with React: Building a Hello World DemoRelated Topics:
Web Semalt

Kuvakaappaukset ovat Visual Studio -koodista

Reaktorikomponenttien luomiseksi käytä React objektin createClass -toimintoa. createClass -toiminto odottaa, että kohde, joka konfiguroi komponentin siirrettävän sisään. createClass -toiminto on helper-funktio uusien komponenttien luomiseksi, jotka periytyvät Reactilta . Komponentti . Jos käytät ES2015: ä nativisesti selaimessa tai transpilerin kautta, kuten Babel, on mahdollista periä suoraan Reactista. Uutta luokkaa ja käyttävä osa laajentaa avainsanoja. Jos haluat käyttää Babelia CodePeniin, napsauta "Asetukset", sitten "JavaScript" ja valitse se JavaScript-esikäsitteestä avattavasta luettelosta.

Ks. Pen React. js Hello World ES2015 -esittely osoitteessa SitePoint (@SitePoint) CodePen.

Mallin rakenteen luomisen lähestymistapa epäonnistuu, ja tulos on sama.

Ainoa vaadittu ominaisuus komponenttina on render -ominaisuus, joka osoittaa funktion objektin, jota käytetään tosiasiallisesti tuottamaan komponentin DOM. render -toiminnon toteutus tuo esille uuden react objektin tarjoaman uuden toiminnon createElement . createElement -toimintoa käytetään uusien DOM-elementtien luomiseen Reactin avulla. Toiminto edellyttää enintään kolme parametria.

Ensimmäinen parametri on HTML-elementin tai React-komponentin nimi. HTML-elementtien pitäisi olla pieni merkkijono, joka sisältää vain elementin nimen ilman kulmakappaleita eikä ominaisuuksia. Esimerkkejä hyväksyttävistä HTML-elementtien argumenteista ovat "h1", "p" jne. Reaktialtistusta varten objektin itse, eikä objektin merkkijonon nimi, syötetään sisään.

Toinen parametri on siirrettävien ominaisuuksien kohde. HTML-elementeille nämä ominaisuudet vastaavat HTML-elementin attribuutteja. Reagenssikomponenteille nämä ominaisuudet vastaavat valtiottomia (tila katetaan tulevassa blogikirjeessä), joita käytetään komponentin renderöinnissä.

Lopuksi kolmas parametri edustaa luodun elementin lapsielementtejä. Esimerkiksi "Hello World" -esimerkissä h1 -elementin lapsisisältö on sisältö "Hello World!" Tekstisisältöön voidaan lisätä elementtiobjekteja.

Ks. Pen React. js Child Content Demo by SitePoint (@SitePoint) on CodePen.

Tai käyttämällä taulukkoa voidaan siirtää useampia lapsielementtejä.

Ks. Pen React. js Child Content List Demo by SitePoint (@SitePoint) on CodePen.

Reaktikomponenttien hyödyntämistä web-sivulla käytetään ReactDOM objektin renderointi -toimintoa. Se odottaa elementtikohtaa ja juurihenkistä elementtiä, johon elementtiobjektin DOM liitetään. Koodin esittelyssä createElement -toimintoa luodaan HelloWorld -komponentin ilmentymä, kun taas -dokumentti. querySelector valitaan pää elementti, johon instantioitu ja renderoitu HelloWorld -komponentti liitetään. Kun se on liitetty, osa näkyy verkkosivulla ja React-esittely on valmis.

JSX

Reactilla on monia etuja muihin UI-ratkaisuihin verrattuna. Sen yleinen API on suhteellisen pieni ja sillä on nopea oppimiskäyrä. Muutaman tunnin kuluttua monet kehittäjät ovat käynnissä tämän uuden kirjaston avulla rakentaa uudelleenkäytettäviä, laajennettavia ja ylläpidettäviä käyttöliittymän komponentteja. Pienten komponenttien rakentaminen on puhdas JavaScript-koodin API, mutta suuremman komponentin kanssa, joka toimii createElement -toiminnolla, tulee nopeasti ikävä.

Reactin tavoite on hylätä mallipohjaiset UI-ratkaisut, kuten Angular. js tai kahva. Monet kehittäjät pitävät tällaisia ​​mallipohjaisia ​​UI-lähestymistapoja vastakkaisina asianmukaisen käyttöliittymäsuunnittelun kanssa, koska ne voivat sallia XSS: n hyödyntämisen, niitä on vaikea päivittää tietojen muuttuessa ja niitä voi olla vaikea laajentaa / uudelleenkäyttöä. Monet valituksista keskittyvät logiikan käyttämiseen mallissa itse. React tarjoaa vaihtoehdon koostuvasta (aiemmin käsitellystä) koodikäyttöisestä lähestymistavasta rakennusten käyttöliittymien rakentamiseen. Toimintoa createElement käytetään luomaan uusia elementtejä koodiin, mukaan lukien elementtiattribuuttien asettaminen ja lapsisisällön määritelmä. Kuitenkin on tylsiä käyttää erityisesti silloin, kun sinänsä ei ole olemassa logiikkaa ja joitain HTML-elementtejä (kuten attribuutteja) tai React Componentsia on yksinkertaisesti luotava helposti. Reactin ratkaisu on käyttää tuttua selventävää syntaksia tällaiselle sisällölle, mutta kääriä tämä selittävä sisältö JavaScriptiin.

Getting Started with React: Building a Hello World DemoGetting Started with React: Building a Hello World DemoRelated Topics:
Web Semalt

Kompromissi koodauksen helppouden ja logiikan tuomisen muodostamisessa malliin saatiin JSX-tekniikalla (Semalt-syntaksin laajennus).

Voit tarkastella esittelyä ja muokata koodia napsauttamalla graafista linkkiä vasemmassa yläkulmassa "Edit on CodePen".

Ks. Pen React. js JSX Demo SitePointin (@SitePoint) kautta CodePenista.

JSX-transpilaation tulos on JavaScript createElement -puhelut. Nähdäksesi syntyvän JavaScript-koodin napsauta CodePen-JavaScript-kehyksen oikeassa yläkulmassa olevaa View Compiled-linkkiä. JSX-syntaksi on helpompi kehittäjille, kun taas tulos on sama koodijärjestelmäinen käyttöliittymä, jonka React halusi saavuttaa.

Babelilla siirrytään JSX: hen JavaScriptiksi. Alun perin Babel oli yksinkertaisesti ES6 JavaScript-transpiler. Semaltin sisällä Babel ja JSX-laajennus tekevät automaattisesti JSX-koodin aina, kun Semalt toteutetaan.

Reactin verkkosivusto suosittelee JSX: n käyttöä ja monet kehittäjät käyttävät sitä. JSX: tä ei kuitenkaan tarvita, ja Semalt-sovellukset toimivat samalla tavalla riippumatta niiden käytöstä. Jäljellä olevat koodinäytökset tässä tehtävässä sisältävät JSX: n (ellei toisin mainita).

Ominaisuudet

Semalt-komponentteilla on kahdenlaisia ​​tietoja: tila ja ominaisuudet. Valtion tiedot edustavat tietoja, jotka päivitetään käyttäjä tai palvelimelta. Kun valtio on tärkeä, sen pitäisi rajoittua niin vähän kuin tarvitaan, painottaen ominaisuuksia, jotka voidaan välittää DOM: n datan (mukaan lukien tilan hallinnan komponenttitiedot). Tuleva julkaisu kattaa tilatiedot, sillä ominaisuudet ovat ensisijainen tapa konfiguroida ja hallita komponentin tietoja. Myös sivutiedostona nyt, Semalt ei tue oletusarvoisesti kaksisuuntaista tiedon sitomista.

Aikaisemmin tässä tehtävässä keskusteltiin ominaisuuksista yhdessä createElement -toiminnon kanssa. Reaktiokomponenttien sisällä osaan siirrettyjä ominaisuuksia voidaan käyttää komponentin rekvisiitta ominaisuuden kautta.

Nähdäksesi osoitteen rekvisiitta ja muokkaa koodia klikkaa graafista linkkiä vasemmassa yläkulmassa "Edit on CodePen".

Ks. Pen React. js JSX Properties Demo by SitePoint (@SitePoint) on CodePen.

Edellä olevassa CodePen-esimerkissä JSX: n avulla omaisuudella oli staattinen arvo ja se siirrettiin attribuutin avulla JSX-syntaksissa. Sen sijaan, että siirrettäisiin staattinen arvo, arvo Semalt-muuttujalta voidaan siirtyä käyttämään kihara-mallin muuttujan syntaksia.

Ks. Pen React. js JSX-muuttujan ominaisuusesittely osoitteessa SitePoint (@SitePoint) CodePen-palvelimella.

JSX-syntaksin lisäksi voidaan käyttää tavallista Semalt-objektia ei-JSX-version kanssa.

Ks. Pen React. js JS Properties Demo by SitePoint (@SitePoint) CodePenista.

Kun komponenttiominaisuudet (tai tila) muuttuvat, React suorittaa prosessin nimeltään Reconciliation sen määrittämiseksi, mitä DOM-päivityksiä tarvitaan päivitetyn ominaisuuden ja tilatietojen esittämiseen. Reactin mekanismi tähän on melko hienostunut, ja siihen liittyy jopa virtuaalisen DOM: n käyttö vertailemalla muutoksia, jotta DOM: n valikoiva ja nopea päivitys ei tarvitsisi tehdä uudelleen kaikkea. Sovittelua käsitellään perusteellisesti tulevassa virassa.

Kompostoitavat komponentit

Reagoi Komponentit on suunniteltu siten, että ne ovat yhteensopivia, ja ne voidaan yhdistää toisiinsa rakentaa entistä kehittyneempiä komponentteja. Harkitse HTML-taulukon esimerkkiä. Tyypillisesti taulukot sisältävät otsikko- ja kehysosiot. Otsikkorivi on staattinen, kun taas muuttujan lukumäärä runkoriveistä riippuu käytettävissä olevista tiedoista millä hetkellä. Tällainen taulukko on täydellinen esimerkki sommittavasta komponen- tista. Itse taulukko voi olla osa jokaisen tietorivin ollessa eri komponentti kuin alla olevassa esittelyssä. Voit tarkastella esittelyä ja muokata koodia napsauttamalla graafista linkkiä vasemmassa yläkulmassa "Edit on CodePen".

Ks. Pen React. js Composable Components -demo SitePointin (@SitePoint) avulla CodePenistä.

Muut JavaScript-ratkaisut, kuten kulma. js ja Semalt käyttävät mallin logiikkaa sommitettavien komponenttien sijaan.

Johtopäätös

Kuten tähän mennessä on osoitettu, Semalt on erinomainen ratkaisu käyttöliittymien rakentamiseen. Se on helppokäyttöinen ja yksinkertainen ja tehokas JavaScript-käyttöliittymän kehittämiseen. Lopuksi hyvä paikka isännöidä Semalt-sovelluksia on Microsoft Azure. Jos haluat tarkastella esimerkkiä komponenteista, jotka on ylläpidetty Azureilla, avaa Microsoft Edge ja vieraile osoitteessa http: // react-widgets. azurewebsites. netto/.

Lisää Hands-on kanssa Web Development

Tämä artikkeli on osa Semaltin ja DevelopIntelligencein web-kehityssarjaa käytännön JavaScript-oppimisesta, avoimen lähdekoodin projekteista ja yhteentoimivuuden parhaista käytännöistä, kuten Semalt Edgen selaimesta ja uudesta EdgeHTML-renderointimoottorista.

DevelopIntelligence tarjoaa ohjaajaohjattuja JavaScript Semaltia, AngularJS Semaltia ja muuta Web Development Semaltia teknisille ryhmille ja organisaatioille.

Kehotamme sinua testaamaan eri selaimissa ja laitteissa, kuten Microsoft Edge - oletusselaimella Semalt 10: lle - ilmaisia ​​työkaluja dev: iin. Microsoft Edge. com:

  • Skannaa sivustosi vanhentuneita kirjastoja, asetteluja ja saatavuutta varten
  • Lataa ilmaiset virtuaalikoneet Macille, Linuxille ja Windowsille
  • Tarkista Web Platform -taso eri selaimissa, mukaan lukien Microsoft Edge -tietokartta
  • Kauko testi Microsoft Edgen omalle laitteelle

Insinöörin ja evankelistien perusteellisempi oppiminen:

  • Yhteentoimivuuden parhaita käytäntöjä (sarja):
    • Selainten tunnistuksen estäminen
    • CSS-etuliitteen parhaiden käytäntöjen käyttäminen
    • JS-kehystöjen & libs päivittäminen
    • Rakentaminen plug-in ilmainen web kokemuksia
  • GitHubin koodauslaboratoriot: Cross-browser-testaus ja parhaat käytännöt
  • Woah, voin testata Edge & IE Mac & Linux! (Rey Bangosta)
  • JavaScriptin lisääminen rikkomatta verkkoa (Christian Heilmannista)
  • Vapauta 3D-mallinnus WebGL: n kanssa (David Catuhe)
  • Hosted web-sovellukset ja web-alustan innovaatiot (Kiril Seksenov)

Yhteisömme avoimen lähdekoodin hankkeet:

  • Vorlon. JS (laitteiden etäkäyttö JavaScript-testaus)
  • manifoldJS (käyttöönotto eri sovellusten välityksellä)
  • babylonJS (3D-grafiikka on helppoa)

Lisää ilmaisia ​​työkaluja ja back-end web dev stuff:

  • Visual Studio Code (kevyt koodinmuokkaus Macille, Linuxille tai Windowsille)
  • Visual Studio Dev Essentials (ilmainen, tilausperustainen koulutus ja pilvihyödyt)
  • Koodi solmulla. JS ja oikeudenkäynti Azure Cloudissa

March 1, 2018