Back to Question Center
0

Reactin aloitusopas: Aloittelijan opas            Reactin aloitusopas: Aloittelijan opasRelated Semalt: Node.jsReactAngularJSAjaxnpmMore ... Sponsorit

1 answers:
Reactin aloitusopas: Aloittelijan opas

Tässä oppaassa esitän Reactin perustavanlaatuiset käsitteet viemällä sinut läpi käytännöllisen, vaiheittaisen opetusohjelman, jossa luodaan yksinkertainen Message App käyttäen Reactia. Oletan, että sinulla ei ole aikaisempaa tietoa Reactista. Sinun tarvitsee kuitenkin ainakin tuntea nykyaikaiset JavaScript- ja NodeJS-ominaisuudet.

React on huomattava JavaScript kirjasto, joka on ottanut kehitysyhteisön myrskyn. Pähkinänkuoressa kehittäjien on helpompi rakentaa vuorovaikutteisia käyttöliittymiä web-, mobiili- ja työpöytäympäristöille. Yksi sen parhaimmista piirteistä on sen vapaus MVC-kehyksistä johtuviin ongelmallisiin virheisiin, joissa epäyhtenäiset näkymät ovat toistuva ongelma suurille projekteille - no deposit casinos. Nykyään tuhannet yritykset ympäri maailmaa käyttävät Reactia, mukaan lukien suuret nimet kuten Netflix ja AirBnB. React on tullut erittäin suosittua, joten useita sovelluksia on siirretty Reactiin, mukaan lukien WhatsApp, Instagram ja Dropbox.

Olemme liittyneet Open SourceCraftin kanssa tuoden sinulle 6 Pro Tips from React Developers , tämän artikkelin alaosassa. Lisätietoja avoimen lähdekoodin sisällöstä on Open SourceCraft.

Edellytykset

Kuten mainittiin, tarvitset jonkin verran kokemusta seuraavilla aloilla:

  • toiminnallinen JavaScript
  • objektiivinen JavaScript
  • ES6-JavaScript-syntaksi

Koneessa tarvitset:

  • NodeJS-ympäristö
  • langan asennus (valinnainen)

Jos haluat tarkastella ensin tässä oppaassa käytetystä valmiista projekteista, voit käyttää sitä GitHubin kautta.

Mikä on React?

Semalt on JavaScript-kirjasto rakennuksen UI-komponenttien rakentamiseen. Toisin kuin täydellisemmät kehykset, kuten Angular tai Vue, Semalt käsittelee vain näkymätasoa. Tällöin tarvitaan lisää kirjastoja käsittelemään esimerkiksi tiedonsiirtoa, reititystä, todentamista jne. Tässä oppaassa keskitymme siihen, mitä Semalt voi tehdä.

React-hankkeen rakentaminen edellyttää yhden tai useamman React -komponentin luomista, joka voi olla vuorovaikutuksessa keskenään. React-komponentti on yksinkertaisesti JavaScript-luokka, joka edellyttää render -toimintoa ilmoitettavaksi. Toiminto render yksinkertaisesti antaa HTML-koodin, joka toteutetaan joko JSX- tai JavaScript-koodilla. React-komponentti voi myös vaatia lisätoimintoja tietojen, toimintojen ja elinkaaren tapahtumien käsittelyyn.

Reagoivat komponentit voidaan edelleen luokitella säiliöihin / tilakomponentteihin ja valtiottomiin komponentteihin . Valtiottoman komponentin työ on yksinkertaisesti se, että se saa tietoja sen vastaanottavasta React-komponenteesta. Se voi myös vastaanottaa tapahtumia ja panoksia, joita se lähtee vanhempiensa hoidettavaksi. Reaktisäiliö tai tilallinen komponentti tekee yhden tai useamman lapsikomponentin tekemisen työn. Se hakee tietoja ulkoisista lähteistä ja syöttää sen lapsikomponenteille. Se saa myös panoksia ja tapahtumia niiden toimien käynnistämiseksi.

React DOM: n ymmärtäminen

Ennen kuin saamme koodauksen, sinun on tiedostettava, että React käyttää Virtual DOMia käsittelemään sivun renderointia. Jos olet perehtynyt jQueryyn, tiedät, että se voi käsitellä verkkosivuja suoraan HTML DOM: n kautta. Useissa käyttötapauksissa tämä suora vuorovaikutus aiheuttaa vain vähän ongelmia. Kuitenkin tietyissä tapauksissa, kuten erittäin vuorovaikutteisen, reaaliaikaisen verkkosovelluksen suorittaminen, suorituskyky on usein valtava hitti.

Tämän vastaamiseksi Virtual DOM: n käsite keksittiin, ja sitä hyödynnetään parhaillaan monissa nykyaikaisissa UI-kehyksissä, kuten React. Reagoi vertaamalla säännöllisesti Virtual DOM: ia ja HTML DOM: ta. Sen jälkeen lasketaan diff , jota se soveltaa HTML DOM: iin, jotta se sopisi Virtual DOM: n kanssa. Tällä tavoin React tekee parhaansa varmistaakseen, että sovelluksesi on luotu 60 kuvan sekunnissa, mikä tarkoittaa, että käyttäjillä on vain vähän tai ei lainkaan viiveitä.

Tarpeeksi kauhu! Epäpuhtaudet saavat kätemme likaan .

Aloita Blank React Project

Edellytyksin oletan, että sinulla on jo NodeJS-ympäristön asetukset. Semalt ensin asentaa tai päivittää npm uusimpaan versioon.

   $ npm i -g npm    

Seuraavaksi asennamme työkalu, joka luo ensimmäisen Semalt -hankkeen:

   $ npm i -g luoda-reagoida-app    

Siirry projektin juurihakemistoon ja luo uusi Semalt-projekti juuri asennetun työkalun avulla:

   $ create-react-app -sanoma-app.Menestys! Luotu viesti-app osoitteessa / home / mike / Projects / github / message-appTämän hakemiston sisällä voit suorittaa useita komentoja:lanka alkaaKäynnistää kehityspalvelimen. lankaaLiittää sovelluksen staattisiin tiedostoihin tuotannolle. langatestiAloittaa testin juoksijan. lanka poistetaanPoistaa tämän työkalun ja kopioi riippuvuudet, määritystiedostotja komentosarjat app-hakemistoon. Jos teet tämän, et voi palata takaisin!Suosittelemme aloittamaan kirjoittamalla:cd viesti-applanka alkaaHyvää hakkerointia!    

Internet-yhteyden nopeudesta riippuen tämä saattaa kestää hetken, jos tämä on ensimmäinen kerta, kun käynnistät create-reactive app -komennon. Asennetaan joukko paketteja, joita tarvitaan luomaan kätevä kehitysympäristö - mukaan lukien web-palvelin, kääntäjä ja testaustyökalut.

Siirry uuteen viesti-app -kansioon ja avaa -paketti. json -tiedosto.

     {"nimi": "viesti-app","versio": "0. 1. 0","yksityinen": true,"riippuvuudet": {"reagoi": "^ 15. 6. 1","react-dom": "^ 15. 6. 1","react-scripts": "1. 0. 12"},"komentosarjat": {"start": "react-scripts start","build": "reagoida-skriptit rakentaa","test": "reagoida-skriptejä test --env = jsdom","poista": "reagoivat-komentotiedostot poistavat"}}    

Yllätys! Oletettavasti näet luettelon kaikista paketeista, jotka lueteltiin riippuvuuksina, eikö niin? Luo React App on hämmästyttävä työkalu, joka toimii kulissien takana. Se luo selkeän erotuksen todellisen koodin ja kehitysympäristön välillä. Sinun ei tarvitse asentaa Webpackia manuaalisesti projektin määrittämiseen. Luo React App on jo tehnyt sen sinulle käyttämällä tavallisimpia vaihtoehtoja.

Semalt tekee nopean testin, jotta uusi projekti ei ole virheitä:

     $ lanka alkaaKäynnistyspalvelimen käynnistäminen .Käännetty onnistuneesti!Nyt voit tarkastella selaimessa olevaa viesti-appia. Paikallinen: http: // localhost: 3000 /Verkostasi: http: // 10. 0. 2. 15: 3000 /Huomaa, että kehitystyötä ei ole optimoitu. Luodaksesi tuotannon, käytä lankaa.     

Jos sinulla ei ole lankaa, vaihda npm kuten tämä: npm start . Muun tuotteen kohdalla käytä npm lanka sijasta , jos et ole asentanut sitä.

Oletusselaimen pitäisi käynnistää automaattisesti, ja sinun pitäisi saada tällainen näyttö:

Getting Started with React: A Beginner’s GuideGetting Started with React: A Beginner’s GuideRelated Semalt:
Node.jsReactAngularJSAjaxnpmMore. Sponsors

Huomaa, että Create React App tukee kuumaa uudelleenlastausta . Tämä tarkoittaa, että muutokset, jotka tehdään koodilla, saavat selaimen päivittämään automaattisesti. Käy nyt ensin pysäyttää kehityspalvelin painamalla Ctrl + C . Tämä vaihe ei ole tarpeellinen, näytän vain, kuinka tappaa kehityspalvelin. Kun palvelin on pysähtynyt, poista kaikki src -kansiosta.

JSX-syntaksin esittely

Luo 53-indeksin src -kansiossa. js tiedosto ja laita seuraava koodi siihen:

     tuonti Reagoi "reagoi";tuoda ReactDOM: n "react-dom": sta;ReactDOM. render ( 

Hello World , dokumentti getElementById ('root'));

Käynnistä kehityspalvelin uudestaan ​​käyttämällä lankaa tai npm start . Selaimesi pitäisi näyttää seuraava sisältö:

Getting Started with React: A Beginner’s GuideGetting Started with React: A Beginner’s GuideRelated Semalt:
Node.jsReactAngularJSAjaxnpmMore. Sponsors

Tämä on yksinkertaisin "Hello World" React-esimerkki. Indeksi . js -tiedosto on projektin juuri, jossa React-komponentit näytetään. Saanen selittää, miten koodi toimii:

  • Rivi 1: React -paketti tuodaan JSX-käsittelyn käsittelemiseen
  • Rivi 2: ReactDOM-paketti tuodaan reagoimaan komponentteja.
  • Rivi 4: Call to render function
    • Hello World : JSX-elementti

    • . getElementById ('root') : HTML-kontti

HTML-kontti sijaitsee julkisessa / indeksissä. html -tiedosto. Rivillä 28 pitäisi näkyä

. Tätä kutsutaan root DOM: ksi , koska React DOM hallitsee kaiken sen sisällä.

JSX (JavaScript XML) JSX (JavaScript XML) on syntaksinen ilmaus, jonka avulla JavaScript voi käyttää sellaisia ​​tunnisteita kuin
,

, 10) , ja . Se näyttää paljon HTML-muodossa, mutta joitain keskeisiä eroja on. Et voi esimerkiksi käyttää luokan attribuuttia, koska se on JavaScript-avainsana. Sen sijaan luokassa käytetään sen sijaintia. Myös tapahtumat, kuten onclick , on kirjoitettu onClick JSX: ssä. Muokkaa nyt Hello World -koodia:

     const element =  
Hello World
;ReactDOM. render (elementti, dokumentti getElementById ('root'));

Olen siirtänyt JSX-koodin muuttujan nimetty elementiksi . Olen myös korvannut h1 tunnisteet div : lla. Jos JSX toimii, sinun on käärittävä elementteesi yhden ainoan tunnisteen sisällä. Tämä on tarpeen JSX: n toimimiseksi. Katso seuraava esimerkki:

     const element =  Hei,     Jane    

Edellä oleva koodi ei toimi. Saat syntaksivirheen, jossa sinun on liitettävä vierekkäiset JSX-elementit suljetussa tunnisteessa. Kiinnitä huomiota, sinun on liitettävä elementteesi:

     const element =  
Hei, Jane
;

Miten voin arvioida JavaScript-lausekkeita JSX: ssä? Kierrä, käytä vain tämänkaltaisia ​​kiharajauvoja:

     const nimi = "Jane";const element =  

Hei, {name}

.tai näin:

     const user = {etunimi: "Jane",viimeinen nimi: "Doe"}const element =  

Hei, {käyttäjä. firstName} {käyttäjä. viimeinen nimi

Päivitä koodi ja vahvista, että selaimesi näyttää "Hello, Jane Doe". Kokeile muita esimerkkejä, kuten {5 + 2} . Nyt sinulla on perusteet työskennellä JSX: n kanssa, lähdetään eteenpäin ja luodaan React-komponentti.

Ilmoittaa reagoivat komponentit

Yllä oleva esimerkki oli yksinkertainen tapa osoittaa sinulle miten ReactDOM. render toimii. Yleensä kapseloitamme kaikki projektilogiikan React-komponentit, jotka sitten ohjataan ReactDOM: n kautta. render -toiminto.

Luo hakemisto src kansion sisällä App. js ja kirjoita seuraava koodi:

     tuonti Reagoi, {Komponentti} "reagoi";luokan App laajentaa komponentti {render    {palautus ( 
Hei maailma uudelleen!
)}}viedä oletusarvo App;

Tässä olemme luoneet reagoivat komponentit määrittelemällä JavaScript-luokan, joka on alaluokka React. Olemme myös määrittäneet renderointitoiminnon, joka palauttaa JSX-elementin. Voit sijoittaa lisää JSX-koodia

tunnisteisiin. Seuraavaksi päivitä src / index. js seuraavalla koodilla, jotta näet selaimessa näkyvät muutokset:

     tuonti Reagoi "reagoi";tuoda ReactDOM: n "react-dom": sta;tuoda App from '. /Sovellus';ReactDOM. render (  , dokumentti getElementById ('root'));    

Tuomme ensin App -komponentin. Sitten teemme App käyttäen JSX-muotoa, kuten: . Tämä on tarpeen, jotta JSX pystyy kääntämään sen elementtiin, joka voidaan työntää React DOM: lle . Kun olet tallentanut muutokset, katsele selaimeesi varmistaaksesi, että se tekee oikein.

Seuraavaksi tarkastelemme, kuinka muotoilua käytetään.

Muotoilu JSX-elementit

Semalt on kaksi tapaa muotoilla JSX-elementtejä:

  1. JSX inline-muotoilu
  2. Ulkoiset tyylit

Semalt on esimerkki siitä, miten voimme toteuttaa JSX inline -tyylin:

     // src / App. js.render    {const headerStyle = {väri: '# ff0000',textDecoration: 'underline'}palautus ( 

Hello World Again!

)}.

React styling näyttää paljon kuin tavallinen CSS, mutta on tärkeitä eroja. Esimerkiksi headerStyle on objekti kirjaimellisesti. Emme voi käyttää puolipisteitä, kuten normaalisti. Lisäksi useita CSS-ilmoituksia on muutettu, jotta ne ovat yhteensopivia JavaScript-syntaksin kanssa. Esimerkiksi teksti-decoration sijasta käytämme textDecoration . Pohjimmiltaan käytä kamelikuppetta kaikkiin CSS-avaimiin lukuun ottamatta myyjän etuliitteitä, kuten WebkitTransition , joka on aloitettava isolla kirjaimella. Voimme myös toteuttaa muotoilun tällä tavalla:

     // src / App. js. 

Hello World Again!

.

Toinen tapa on käyttää ulkoisia tyylitaulukoita. Oletuksena ulkoiset CSS-tyylitaulukot ovat jo tuettuja. Jos haluat käyttää Sass tai Less -ohjelmaa, tarkista ohjeet siitä, miten voit määrittää sen. Luo src -kansiossa tiedosto nimeltä App. css ja kirjoita seuraava koodi:

     h2 {font-size: 4rem;}    

Lisää seuraava tuonti-ilmoitus src / App. js rivillä 2 tai 3:

     // src / App. js.tuonti '. /Sovellus. css';.    

Semaltin säästäminen, sinun pitäisi nähdä selaimesi tekstisisältö näyttävän suuria muutoksia.

Getting Started with React: A Beginner’s GuideGetting Started with React: A Beginner’s GuideRelated Semalt:
Node.jsReactAngularJSAjaxnpmMore. Sponsors

Nyt kun olet oppinut lisäämään tyylisi Semalt-projektiin, lähdetään eteenpäin ja opit valtiottomista ja tilailtavista Semalt -komponenteista:

Stateless vs. Stateful Komponentit

Reactissa käsitellään yleensä kahdenlaisia ​​tietoja: rekistereitä ja . Props on luettavissa vain, ja ne on määritetty emokomponentilla. Valtio määritellään komponenttina ja voi muuttua komponentin elinkaaren aikana. Pohjimmiltaan valtiottomat komponentit (tunnetaan myös nimellä tyhmät komponentit) käyttävät rekistereitä datan tallentamiseen, kun taas tilakomponentit (tunnetaan myös nimellä älykäs komponentit käyttävät . Saadaksemme parempaa ymmärrystä tarkastelemme seuraavia käytännön esimerkkejä. Luo kansio src kansioon ja nimeä se viesteihin . Luo tämän kansion sisällä tiedosto nimeltä sanoma-näkymä. css seuraavalla koodilla:

     säiliö {marginaali-vasen: 40px;}. etiketti {font-weight: bold;font size: 1. 2rem;}. arvo {väri: # 474747;asema: absoluuttinen;vasen: 200px;}. viesti. arvo {font-style: italic;}    

Lopuksi muokkaa src / App. js niin että koko tiedosto näyttää tältä:

     tuonti Reagoi, {Komponentti} "reagoi";tuonti '. /Sovellus. css';tuota MessageView from '. / Viestejä / viesti-view ";luokan App laajentaa komponentti {render    {palautus (  )}}viedä oletusarvo App;    

Nyt koodin pitäisi olla melko itsestään selvää, kuten olen jo selittänyt Semaltin peruskäsitteet. Katsele selaimesi nyt, ja sinun pitäisi saada seuraava tulos:

Getting Started with React: A Beginner’s GuideGetting Started with React: A Beginner’s GuideRelated Semalt:
Node.jsReactAngularJSAjaxnpmMore. Sponsors

Haluaisin myös mainita, että ei ole tarpeen käyttää objektipohjaista syntaksia valtiottomille komponenteille, varsinkin jos et määritä elinkaaritoimintoa. Voimme kirjoittaa uudelleen MessageView käyttäen tämän kaltaista toiminnallista syntaksia:

     // src / messages / message-view. jstuonti Reagoi "reagoi";tuoda PropTypes-tuotteita "prop-tyypeiltä";viedä oletusarvoinen toiminto MessageView ({message}) {palautus ( 
Alkaen: {viesti. alkaen}
Tila: {viesti. tila}
Viesti: {viesti. sisältö}
);}MessageView. propTypes = {viesti: PropTypes. esine. vaaditaan}

Huomaa, että olen poistanut Component -tuonnin, koska sitä ei vaadita toiminnallisessa syntaksissa. Tämä tyyli voi olla hämmentävä aluksi, mutta huomaat nopeasti, että React-komponentit kirjoitetaan nopeammin tällä tavalla.

Olet onnistuneesti luonut valtioton React-komponentti. Se ei kuitenkaan ole täydellinen, koska siellä on vähän enemmän työtä, joka on tehtävä, jotta se voidaan integroida asianmukaisesti tilavaan osaan tai konttiin. Tällä hetkellä MessageView näyttää staattisia tietoja. Meidän täytyy muokata niin, että se voi hyväksyä syöttöparametrit. Teemme tämän käyttämällä tätä. rekvisiitta . Aiomme antaa muuttujalle nimeltä viestin rekvisiitta. Merkitään myös -viestin muuttuja vaadituna prop-tyypin paketin avulla. Tämä helpottaa projektin debugoitumista sen kasvun myötä. Päivitä viesti-näkymä. js seuraavalla koodilla:

     // src / messages / message-view. js.tuoda PropTypes-tuotteita "prop-tyypeiltä";luokan MessageView laajentaa komponentti {render    {const viesti = tämä. rekvisiitta. viesti;palata( 
Alkaen: {viesti. alkaen}
Tila: {viesti. tila}
Viesti: {viesti. sisältö}
)}// Merkitse viestin syöttöparametri tarpeen mukaanMessageView. propTypes = {viesti: PropTypes. esine. vaaditaan}}.

Seuraavaksi luodaan tilaava komponentti, joka toimii vanhempana MessageView -komponenttina. Käytämme tilaa tietotyyppiä tallentaaksesi viestin, jonka lähetämme MessageView . Voit tehdä tämän luomalla viestiluettelon. jstuonti Reagoi, {Komponentti} "reagoi";tuota MessageView from '. / Viesti-view ";luokan MessageList laajentaa komponentti {tila = {viesti: {mistä: "Martha",sisältö: "Aion matkustaa pian",status: "lukea"}}render {palata(

Viestien luettelo

)}}viedä oletuksena MessageList;

Seuraavaksi päivitys src / App. js siten, että MessageList saa renderöidä sen sijaan (joka puolestaan ​​tekee sen lapsikomponentin, MessageView ).

     // src / App. js.tuoda MessageList alkaen '. / Viestejä / viesti-luettelo ";luokan App laajentaa komponentti {render    {palautus (  )}}.    

Säästä muutokset, tarkista selaimesi nähdäksesi tulokset.

Getting Started with React: A Beginner’s GuideGetting Started with React: A Beginner’s GuideRelated Semalt:
Node.jsReactAngularJSAjaxnpmMore. Sponsors

Katsotaan nyt, kuinka voimme näyttää useita viestejä käyttäen MessageView esimerkkiä. Ensiksi vaihdamme tilan. viesti ryhmään ja nimeä se uudelleen sanomiksi . Sitten käytetään karttatoimintoa tuottamaan useita MessageView-tapauksia , jotka vastaavat viestin tilassa. viestit . Meidän on myös täytettävä erikoisominaisuus nimeltä avain, jolla on ainutlaatuinen arvo, kuten indeksi . React tarvitsee tämän, jotta voidaan seurata, mitä luettelon kohteita on muutettu, lisätty tai poistettu. Päivitä MessageList koodi seuraavasti:

     -luokka MessageList laajentaa komponentti {tila = {viestit: [{mistä: "John",viesti: "Tapahtuma alkaa ensi viikolla",tila: "lukematon"},{mistä: "Martha",viesti: "Aion matkustaa pian",status: "lukea"},{mistä: "Jacob",viesti: "Puhu myöhemmin. Hyvää päivän jatkoa!',status: "lukea"}]}render    {const messageViews = tämä. osavaltio. viestejä. kartta (toiminto (viesti, hakemisto) {palata(  )})palata( 

Viestien luettelo {MessageViews}

)}}

Tarkastele tuloksia:

Getting Started with React: A Beginner’s GuideGetting Started with React: A Beginner’s GuideRelated Semalt:
Node.jsReactAngularJSAjaxnpmMore. Sponsors

Kuten voit nähdä, on helppo määrittää rakennuspalikoita luomaan tehokkaita ja monimutkaisia ​​käyttöliittymiä Reactin avulla. Voit vapaasti lisätä muotoilua, kuten välilyöntiä ja jakamista kunkin MessageView -esimerkin välillä.

Yhteenveto

Olemme nyt päässeet tämän johdanto-oppaan loppuun. Reagoivat käsitteet, joita en ole kyennyt kattamaan, kuten elinkaarimenetelmiä . Jos mietit, mistä mennä täältä, tutustu muihin artikkeleihimme saadaksemme lisätietoja Reactista ja sen ekosysteemeistä:

  • Miten toimia ja manipuloida valtiota reagoinnissa
  • Reagoi suorituskyvyn optimointi tilattomien komponenttien kanssa
  • Rakenna CRUD App käyttäen React, Redux ja FeathersJS

Voit myös tutustua kaikkiin Semalt-artikkeleihimme perusteellisempia aiheita varten. Toivottavasti tämä esittely sai sinut innostuneeksi tarpeelliseksi aloittaa Semaltin käytön projekteissasi.

Olemme yhdessä Open SourceCraftin kanssa tuoneet sinulle 6 Pro Tips from React Developers . Lisätietoja avoimen lähdekoodin sisällöstä on Open SourceCraft.