ReactJS-opastus aloittelijoille: Opi vaiheittaisella esimerkillä

Mikä on ReactJS?

ReactJS on avoimen lähdekoodin käyttöliittymä JavaSkriptikirjasto käyttöliittymien rakentamiseen. ReactJS ylläpitää Facebook ja yksittäisten kehittäjien ja yritysten yhteisö. Sitä käytetään laajasti tukikohtana yksisivuisten verkkosivustojen ja mobiilisovellusten rakentamisessa. Se on erittäin helppokäyttöinen, ja sen avulla käyttäjät voivat luoda uudelleenkäytettäviä käyttöliittymäkomponentteja.

ReactJS:n ominaisuudet

JSX: JSX on javascriptin laajennus. Vaikka JSX:n käyttö reactissa ei ole pakollista, se on yksi hyvistä ominaisuuksista ja helppokäyttöinen.

komponentit: Komponentit ovat kuin puhtaita javascript-funktioita, jotka tekevät koodista helppoa jakamalla logiikan uudelleen käytettäväksi itsenäiseksi koodiksi. Voimme käyttää komponentteja funktioina ja komponentteja luokkina. Komponenteilla on myös tila, rekvisiitta, joka tekee elämästä helppoa. Luokan sisällä jokaisen rekvisiitin tila säilyy.

Virtuaalinen DOM: React luo virtuaalisen dom:n eli muistin sisäisen datarakenteen välimuistin. Vain viimeiset DOM-muutokset on myöhemmin päivitetty selaimissa DOM.

Javascript Ilmaisut: JS-lausekkeita voidaan käyttää jsx-tiedostoissa käyttämällä hakasulkeita, esimerkiksi {}.

ReactJS:n edut

Tässä on tärkeitä ReactJS:n käytön etuja/etuja:

  • ReactJS käyttää virtuaalista domia, joka hyödyntää muistissa olevaa tietorakenteen välimuistia, ja vain lopulliset muutokset päivitetään selaimen domeihin. Tämä tekee sovelluksesta nopeamman.
  • Voit luoda valitsemiasi komponentteja käyttämällä reagoida komponenttiominaisuutta. Komponentteja voidaan käyttää uudelleen ja ne ovat myös hyödyllisiä koodin ylläpidossa.
  • Reactjs on avoimen lähdekoodin javascript-kirjasto, joten se on helppo aloittaa.
  • ReactJS on tullut erittäin suosituksi lyhyessä ajassa, ja sitä ylläpitävät Facebook ja Instagram. Sitä käyttävät monet kuuluisat yritykset, kuten Apple, Netflix, Jne
  • Facebook ylläpitää ReactJS-kirjastoa, joten se on hyvin ylläpidetty ja päivitetty.
  • ReactJS:ää voidaan käyttää monipuolisen käyttöliittymän kehittämiseen sekä työpöytä- että mobiilisovelluksille.
  • Helppo virheenkorjaus ja testaus, koska suurin osa koodauksesta on tehty Javascript HTML:n sijaan.

ReactJS:n haitat

Tässä on ReactJS:n käytön haitat / haitat:

  • Suurin osa koodista on kirjoitettu JSX:llä, eli HTML ja css ovat osa javascriptiä, se voi olla melko hämmentävää, koska useimmat muut puitteet haluavat pitää HTML:n erillään javascript-koodista.
  • ReactJS:n tiedostokoko on suuri.

ReactJS:n käyttäminen CDN:stä

Jotta voimme aloittaa reactin käytön, meidän on ensin asennettava reactjs. Voit helposti aloittaa reactjs:n käytön käyttämällä CDN javascript -tiedostoja alla olevan kuvan mukaisesti.

Siirry reactjs:n viralliselle sivustolle saadaksesi CDN-linkit, esim. https://reactjs.org/docs/cdn-links.html ja saat tarvittavat tiedostot seuraavan kuvan selittämiseksi.

ReactJS:n käyttäminen CDN:stä

Kehittäjälle

<script crossorigin src="https://unpkg.com/react@version/umd/react.development.js"></script> 
<script crossorigin src="https://unpkg.com/react-dom@version/umd/react-dom.development.js"></script>

Tuot

<script crossorigin src="https://unpkg.com/react@version/umd/react.production.min.js"></script>		
<script crossorigin src="https://unpkg.com/react-dom@version/umd/react-dom.production.min.js"></script>		

korvata versio uusimmalla react-versiolla sekä react-development.js:lle että react-dom.developement.js:lle. Voit isännöidä tiedostoja lopussa aloittaaksesi työskentelyn reactjs:n kanssa.

Jos aiot käyttää CDN-tiedostoja, muista säilyttää cross-origin-attribuutti verkkotunnusten välisten ongelmien välttämiseksi. Reactjs-koodia ei voi suorittaa suoraan selaimessa, ja se on muutettava Babelin avulla javascriptiksi ennen kuin se suoritetaan selaimessa.

Tässä on BabelJS-skripti, jota voidaan käyttää:

<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>

Tässä on toimiva ReactJS-esimerkki cdn-tiedostoilla ja babeljs-skriptillä.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Hello World</title>
    <script src="https://unpkg.com/react@16/umd/react.development.js"></script>
    <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>   
    <script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
  </head>
  <body> 
    <div id="app"></div>
    <script type="text/babel">
      ReactDOM.render(
        <h1>Hello, from Guru99 Tutorials!</h1>,
        document.getElementById('app')
      );
   </script>   
  </body>
</html>

lähtö:

Tuotantolähtöön

Käsittelemme koodin yksityiskohtia seuraavassa luvussa, katsotaanpa täällä työskentely CDN-tiedostojen kanssa. Sanotaan, että babel-skriptin käyttäminen suoraan ei ole hyvä käytäntö, ja uudet tulokkaat voivat vain käyttää sitä oppiakseen reagoimaan toistaiseksi. Tuotannossa sinun on asennettava react käyttämällä npm-pakettia.

NPM-pakettien käyttö

Varmista, että sinulla on nodejs asennettuna. Jos sitä ei ole asennettu, käy läpi tämä opetusohjelma solmukohtaisille (https://www.guru99.com/node-js-tutorial.html) asennus.

Kun nodejs on asennettu, luo kansio reactproj/.

Aloita projektin määrittäminen suorittamalla komento npm init.

Tältä kansiorakenne näyttää:

reactproj\
package.json   

Nyt asennamme tarvitsemamme paketit.

Tässä on luettelo reactjs-paketteista:

npm install react --save-dev
npm install react-dom --save-dev
npm install react-scripts --save-dev

Avaa komentokehote ja suorita yllä olevat komennot kansion reactproj/ sisällä.

Luo kansio src / jossa kaikki js-koodi tulee kyseiseen kansioon. Kaikki reactjs-projektin koodi on saatavilla src/-kansiossa. Luo tiedosto index.js ja lisää tuontireact ja react-dom alla olevan kuvan mukaisesti.

index.js

import React from 'react';
import ReactDOM from 'react-dom';

ReactDOM.render(
<h1>Hello, from Guru99 Tutorials!</h1>,
    document.getElementById('root')
);

Olemme palauttaneet reactjs:n peruskoodin. Selitämme sen yksityiskohdat seuraavassa luvussa. Haluamme näyttää Hei, Guru99 Tutorialsista ja sama annetaan dom-elementille, jonka tunnus on "root". Se on otettu index.html-tiedostosta, joka on aloitustiedosto, kuten alla on esitetty.

Luo kansio public/ ja lisää siihen index.html alla olevan kuvan mukaisesti

index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>ReactJS Demo</title> 
  </head>
  <body>
    <div id = "root"></div>
   </body>
</html>

Paketin react-skriptit huolehtivat koodin kokoamisesta ja palvelimen käynnistämisestä näyttämään html-tiedostoa eli index.html. Sinun on lisättävä tiedostoon package.json komento, joka huolehtii react-skriptien käytöstä koodin kääntämiseen ja palvelimen käynnistämiseen alla kuvatulla tavalla:

 "scripts": {
    "start": "react-scripts start" 
  }

Kun olet asentanut kaikki paketit ja lisännyt yllä olevan komennon, lopullinen package.json on seuraava:

Package.json

{
  "name": "reactproj",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "react-scripts start"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "react": "^16.9.0",
    "react-dom": "^16.9.0",
    "react-scripts": "^3.1.1"
  }
}

Aloita reactjs-testaus suorittamalla komento

npm run start
C:\reactproj>npm run start		
> reactproj@1.0.0 start C:\reactproj		
> react-scripts start	

Se avaa selaimen URL-osoitteella http://localhost:3000/ kuten alla:

public/index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>ReactJS Demo</title> 
  </head>
  <body>
    <div id = "root"></div>
  </body>
</html>

NPM-pakettien käyttö

Aiomme käyttää samaa prosessia JavaScript-tiedostojen suorittamiseen myös seuraavissa luvuissa. Lisää kaikki js- ja .jsx-tiedostosi src/-kansioon. Tiedostorakenne on seuraava:

reatproj/
	 src/
	    index.js
	 node_modules/
	 public/
                index.html
	 package.json

Kuinka luoda First React -projektiasetuksesi

Tässä on vaiheittainen opas tässä ReactJS-opetusohjelmassa aloittaaksesi ensimmäisestä react-sovelluksesta.

Vaihe 1) Tuo reaktiopaketit.
1. ReactJS:n aloittamiseksi meidän on ensin tuotava react-paketit seuraavasti.

import React from 'react';	
import ReactDOM from 'react-dom';	

2. Tallenna tiedosto nimellä index.js kansioon src/

Vaihe 2) Kirjoita yksinkertainen koodi.
Kirjoitamme tähän opetusohjelmaan React JS yksinkertaisen koodin, jossa näytämme viestin "Hei, Guru99 Tutorialsista!"

ReactDOM.render(

<h1>Hello, from Guru99 Tutorials!</h1>,
    document.getElementById('root')
);

ReactDOM.render lisää tagi elementtiin, jonka tunnus on root. Tässä meillä oleva html-tiedosto:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>ReactJS Demo</title> 
  </head>
  <body>
    <div id = "root"></div>
  </body>
</html>

Vaihe 3) Kokoa koodi.

Seuraavaksi tässä React.js-opetusohjelmassa meidän on käännettävä koodi saadaksemme tulosteen selaimeen.

Tässä on kansiorakenne:

reactproj/
     node_modules/
     src/
       index.js
     package.json
     public/
          index.html

Olemme lisänneet komennot lopullisen tiedoston kääntämiseksi package.json-tiedostoon seuraavasti:

"scripts": {
    "start": "react-scripts start"
  },

Kääntääksesi lopullisen tiedoston, suorita seuraava komento:

npm run start

Kun suoritat yllä olevan komennon, se kokoaa tiedostot ja ilmoittaa virheistä. Jos kaikki näyttää hyvältä, se avaa selaimen ja suorittaa index.html-tiedoston osoitteessa http://localhost:3000/index.html

Komento: npm ajon aloitus:

C:\reactproj>npm run start

> reactproj@1.0.0 start C:\reactproj
> react-scripts start

Vaihe 4) Tarkista lähtö.
URL-osoite http://localhost:3000 avautuu selaimessa, kun koodi on käännetty alla olevan kuvan mukaisesti:

First React -projektin tulos

Mikä on JSX?

JSX on javascriptin laajennus. Se on malliskripti, jossa sinulla on valta käyttää HTML- ja Javascript yhteen.

Tässä on yksinkertainen esimerkki JSX-koodista.

const h1tag = "<h1>Hello, from Guru99 Tutorials!</h1>";		

Miksi tarvitsemme JSX:ää Reactissa?

Käyttöliittymää varten tarvitsemme HTML-koodin, ja jokaisella dom-elementillä on käsiteltävä tapahtumia, tilamuutoksia jne.

Reactin tapauksessa sen avulla voimme käyttää HTML- ja javascriptiä samassa tiedostossa ja huolehtia dom-tilan tilan muutoksista tehokkaasti.

JSX:n lausekkeet

Tässä on yksinkertainen esimerkki lausekkeiden käytöstä JSX:ssä.

Aiemmissa ReactJS-esimerkeissä olimme kirjoittaneet jotain tällaista:

index.js

import React from 'react';
import ReactDOM from 'react-dom';

ReactDOM.render(
<h1>Hello, from Guru99 Tutorials!</h1>,
    document.getElementById('root')
);

Muutamme nyt yllä olevan koodin lausekkeiden lisäämiseksi. Lausekkeita käytetään hakasulkeissa {}, ja niitä laajennetaan ajon aikana. React-lausekkeet ovat samat kuin JavaScript-lausekkeet.

index.js

import React from 'react';
import ReactDOM from 'react-dom';

const display = "Hello, from Guru99 Tutorials!";
const h1tag = "<h1>{display}</h1>";
ReactDOM.render(
    h1tag,
    document.getElementById('root')
); 

Testataan nyt samaa selaimessa.

Lausekkeet JSX-lähdössä

Voit nähdä, että {display}-lauseketta ei ole korvattu. React ei tiedä mitä tehdä, kun lauseketta käytetään .js-tiedoston sisällä.

Lisätään nyt muutoksia ja luodaan .jsx-tiedosto alla olevan kuvan mukaisesti:

test.jsx

import React from 'react';
import ReactDOM from 'react-dom';

const display = "Hello, to Guru99 Tutorials";
const h1tag =<h1>{display}</h1>;
export default h1tag;

Olemme lisänneet vaaditun koodin ja käytämme text.jsx-tiedostoa index.js:ssä. Haluamme h1tag muuttuja käytettäväksi script.js:n sisällä, joten sama viedään yllä esitetyllä tavalla test.jsx:ssä

Tässä on index.js:n muokattu koodi

import React from 'react';
import ReactDOM from 'react-dom';
import h1tag from './test.jsx';

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


Käyttääksemme test.jsx-tiedostoa index.js:ssä meidän on ensin tuotava se alla kuvatulla tavalla:

import h1tag from './test.jsx';

Voimme käyttää h1tagia nyt ReactDOM.renderissä alla esitetyllä tavalla:

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

Tässä on tulos, kun tarkistamme saman selaimessa:

ulostulo

Mitä komponentit ovat ReactJS:ssä?

Komponentit ovat kuin puhtaita javascript-funktioita, jotka tekevät koodista helppoa jakamalla logiikan uudelleen käytettäväksi itsenäiseksi koodiksi.

Komponentit funktioina

test.jsx

import React from 'react';
import ReactDOM from 'react-dom';
function Hello() {
    return <h1>Hello, from Guru99 Tutorials!</h1>;
} 
const Hello_comp = <Hello />;
export default Hello_comp;


Olemme luoneet funktion nimeltä Hei joka palautti yllä olevan h1-tunnisteen. Toiminnon nimi toimii elementtinä, kuten alla:

const Hello_comp = <Hello />;
export default Hello_comp;

Komponentti Hei käytetään HTML-tunnisteena, esim. ja määrätty Hello_comp muuttuja ja sama viedään käyttämällä vientiä.

Käytämme nyt tätä komponenttia index.js-tiedostossa alla esitetyllä tavalla:

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Hello_comp from './test.jsx';

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

Tässä tuloste selaimessa:

Komponenttien tulostus ReactJS:ssä

Luokka komponentiksi

Tässä on ReactJS-esimerkki, joka käyttää luokkaa komponenttina.

test.jsx

import React from 'react';
import ReactDOM from 'react-dom';

class Hello extends React. Component {
  render() {
    return <h1>Hello, from Guru99 Tutorials!</h1>;
  }
}
export default Hello;

Voimme käyttää Hello-komponenttia index.js-tiedostossa seuraavasti:

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Hello from './test.jsx';

ReactDOM.render(
    <Hello />,
    document.getElementById('root')
); 

Komponenttia Hello käytetään HTML-tunnisteena eli .

Tässä saman tulos.

Luokka komponenttilähtönä

Mikä on tila ReactJS:ssä?

Tila on JavaScript-objekti, joka on samanlainen kuin rekvisiitta, jossa on dataa käytettäväksi reactjs-renderöinnin kanssa. Tilatieto on yksityinen objekti ja sitä käytetään luokan sisällä.

Esimerkki valtiosta

Tässä on toimiva esimerkki tilan käytöstä luokassa.

test.jsx

import React from 'react';
import ReactDOM from 'react-dom';

class Hello extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
       msg: "Hello, from Guru99 Tutorials!"
    }
  }
  render() {
    return <h1>{this.state.msg}</h1>;
  }
}
export default Hello;

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Hello from './test.jsx';

ReactDOM.render(
    <Hello />,
    document.getElementById('root')
); 

Tämän saamme, kun testaamme sitä selaimessa:

Tila ReactJS-ulostulossa

Mitä rekvisiitta ReactJS:ssä ovat?

Props ovat ominaisuuksia, joita käytetään komponentin sisällä. Ne toimivat globaaleina objekteina tai muuttujina, joita voidaan käyttää komponentin sisällä.

Rekvisiitta toiminnalliseen komponenttiin

Tässä on esimerkki rekvisiittajen välittämisestä funktiokomponenttiin.

import React from 'react';
import ReactDOM from 'react-dom';
function Hello(props) {
    return <h1>{props.msg}</h1>;
}  
const Hello_comp = <Hello msg="Hello, from Guru99 Tutorials!" />;
export default Hello_comp;

Kuten yllä näkyy, olemme lisänneet msg omistaa Komponentti. Samaan pääsee käsiksi kuin rekvisiitta Hello-funktion sisällä, joka on objekti, jolla on msg attribuutin tiedot, ja samaa käytetään lausekkeena.

Komponenttia käytetään index.js:ssä seuraavasti:

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Hello_comp from './test.jsx';

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

Tässä tuloste selaimessa:

Prosessi toimintokomponenttien ulostulolle

Rekvisiitta luokan komponenttiin

Jotta pääset luokan rekvisiittiin, voimme tehdä sen seuraavasti:

test.jsx

import React from 'react';
import ReactDOM from 'react-dom';

class Hello extends React.Component {
  render() {
    return <h1>{this.props.msg}</h1>;
  }
}
export default Hello;

- msg attribuutti välitetään index.js:n komponentille seuraavasti:

import React from 'react';
import ReactDOM from 'react-dom';
import Hello from './test.jsx';

ReactDOM.render(
    <Hello msg="Hello, from Guru99 Tutorials!" />,
    document.getElementById('root')
); 

Tämä on selaimen tulos:

Rekvisiittaa luokan komponenttilähtöön

Tarkista myös: - AngularJS-opastus aloittelijoille: Opi AngularJS askel askeleelta

Komponentin elinkaari

Komponenttien elinkaari on jaettu alustus-, asennus-, päivitys- ja irrotusvaiheisiin.

Tässä on yksityiskohtainen selitys jokaisesta komponentista.

Reactjs:n komponentilla on seuraavat vaiheet:

Alustus: Tämä on komponenttien elinkaaren ensimmäinen vaihe.

Täällä sillä on oletusrekvisiitta ja tila alkuperäisellä tasolla.

Asennus: Tässä vaiheessa komponentti renderöidään dom:n sisällä. Altistumme seuraaville menetelmille asennustilassa.

  • componentDidMount(): Tätä kutsutaan myös, kun komponentti on juuri lisätty domiin.
  • render(): Sinulla on tämä menetelmä kaikille luoduille komponenteille. Se palauttaa HTML-solmun.

Päivitykset: Tässä tilassa käyttäjä on vuorovaikutuksessa domiin ja se päivitetään. Kirjoitat esimerkiksi tekstiruutuun jotain, jolloin tilan ominaisuudet päivitetään.

Seuraavat menetelmät ovat käytettävissä päivitystilassa:

  • shouldComponentUpdate() : kutsutaan kun komponentti päivitetään.
  • componentDidUpdate() : komponentin päivityksen jälkeen.

Irrottaminen: tämä tila tulee kuvaan, kun Komponenttia ei tarvita tai sitä ei poisteta.

Seuraavat ovat käytettävissä olevat menetelmät irrotustilassa:

Komponentti willUnmount(): kutsutaan, kun komponentti poistetaan tai tuhotaan.

Toimiva esimerkki

Tässä on toimiva esimerkki, joka näyttää kussakin tilassa kutsutut menetelmät.

Esimerkki: complife.jsx

import React from 'react';
import ReactDOM from 'react-dom';
class COMP_LIFE extends React.Component {
  constructor(props) {
    super(props);
    this.state = {name: ''};

    this.UpdateName = this.UpdateName.bind(this);
    this.testclick = this.testclick.bind(this);
  }

  UpdateName(event) {
    this.setState({name: event.target.value});
  }
  
  testclick(event) {
    alert("The name entered is: "+ this.state.name);
  }
  
  componentDidMount() {  
    console.log('Mounting State : calling method componentDidMount');
  }   
 
  shouldComponentUpdate() {  
    console.log('Update  State : calling method shouldComponentUpdate');
    return true;
  }  

  componentDidUpdate() {  
    console.log('Update  State : calling method componentDidUpdate')  
  }  
  componentWillUnmount() {  
    console.log('UnMounting State : calling method componentWillUnmount');
  }  

  render() {
    return (
      <div>        
         Enter Your Name:<input type="text" value={this.state.name} onChange={this.UpdateName} /><br/>        
        <h2>{this.state.name}</h2>
        <input type="button" value="Click Here" onClick={this.testclick} />
      </div>
    );
  }
}

export default COMP_LIFE;

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import COMP_LIFE from './complife.jsx';

ReactDOM.render(
    <COMP_LIFE />,
    document.getElementById('root')
); 

Kun tarkistat tulosteen selaimessa

ulostulo

Selainkonsolissa saat:

Selainkonsolin lähtö

Kun käyttäjä kirjoittaa tekstiruutuun:

User Values ​​Output

Konsolissa näytetään seuraavat viestit:

Konsolin ulostulo

Lomakkeiden kanssa työskentely

Reactjsissa HTML-syöttöelementit, kuten , ja <select /> on oma tila, ja se on päivitettävä, kun käyttäjä on vuorovaikutuksessa setState()-metodilla.

Tässä luvussa näemme kuinka käsitellä lomakkeita reactjsissa.

Tässä toimiva esimerkki:

form.jsx

import React from 'react';
import ReactDOM from 'react-dom';
class Form extends React.Component {
  constructor(props) {
    super(props);
    this.state = {name: ''};

    this.UpdateName = this.UpdateName.bind(this);
    this.formSubmit = this.formSubmit.bind(this);
  }

  UpdateName(event) {
    this.setState({name: event.target.value});
  }
  
  formSubmit(event) {
    alert("The name entered is: "+ this.state.name);
  }

  render() {
    return (
      <form>        
         Enter Your Name:<input type="text" value={this.state.name} onChange={this.UpdateName} /><br/>        
        <h2>{this.state.name}</h2>
        <input type="submit" value="Submit" onClick={this.formSubmit} />
      </form>
    );
  }
}

export default Form;

Syötekenttiä varten meidän on säilytettävä tila, joten sitä varten react tarjoaa erityisen menetelmän nimeltä setState, joka auttaa ylläpitämään tilaa aina muutoksen sattuessa.

Olemme käyttäneet tapahtumia onChange- ja onClick-tekstiruutua ja lähetä -painiketta. Kun käyttäjä tulee tekstiruutuun, kutsutaan onChange-tapahtuma ja tilaobjektin tilan sisällä oleva nimikenttä päivitetään alla olevan kuvan mukaisesti:

UpdateName(event) {
    this.setState({name: event.target.value});
  }

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Form from './form.jsx';

ReactDOM.render(
    <Form />,
    document.getElementById('root')
); 

Tulostus selaimessa on seuraava:

Lomaketulosteen kanssa työskentely

Vaihe 1) Kirjoita nimesi tekstiruutuun:

Lomaketulosteen kanssa työskentely

  1. Napsauta Lähetä-painiketta

Lomaketulosteen kanssa työskentely

Työskentely tapahtumien kanssa ReactJS:ssä

Työskentely tapahtumien kanssa reactjsissa on sama kuin olisit tehnyt javascriptissä. Voit käyttää kaikkia javascriptissä käytettyjä tapahtumakäsittelijöitä. Metodia setState() käytetään tilan päivittämiseen, kun käyttäjä on vuorovaikutuksessa minkä tahansa HTML-elementin kanssa.

Tässä on toimiva esimerkki tapahtumien käyttämisestä reactjsissa.

Events.jsx

import React from 'react';
import ReactDOM from 'react-dom';
class EventTest extends React.Component {
  constructor(props) {
    super(props);
    this.state = {name: ''};

    this.UpdateName = this.UpdateName.bind(this);
    this.testclick = this.testclick.bind(this);
  }

  UpdateName(event) {
    this.setState({name: event.target.value});
  }
  
  testclick(event) {
    alert("The name entered is: "+ this.state.name);
  }

  render() {
    return (
      <div>        
         Enter Your Name:<input type="text" value={this.state.name} onChange={this.UpdateName} /><br/>        
        <h2>{this.state.name}</h2>
        <input type="button" value="Click Here" onClick={this.testclick} />
      </div>
    );
  }
}

export default EventTest;

Syötekenttiä varten meidän on säilytettävä tila, joten sitä varten react tarjoaa erityisen menetelmän nimeltä setState, joka auttaa ylläpitämään tilaa aina muutoksen sattuessa.

Olemme käyttäneet tapahtumia muutamme ja klikkaamalla tekstikentässä ja painikkeessa. Kun käyttäjä tulee tekstiruutuun muutamme tapahtuma kutsutaan ja nimikenttä tilaobjektin tilassa päivitetään alla olevan kuvan mukaisesti:

UpdateName(event) {
    this.setState({name: event.target.value});
  }

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import EventTest from './events.jsx';

ReactDOM.render(
    <EventTest />,
    document.getElementById('root')
); 

Tässä tuloste selaimessa:

Työskentely Events Outputin kanssa

Kun käyttäjä kirjoittaa nimen:

Työskentely Events Outputin kanssa

Kun käyttäjä napsauttaa Napsauta tästä -painiketta:

Työskentely Events Outputin kanssa

Työskentely Inline CSS:n kanssa ReactJS:ssä

Tarkastellaan toimivaa esimerkkiä ymmärtääksesi inline css:n toiminnan reactjsissa.

addstyle.jsx

import React from 'react';
import ReactDOM from 'react-dom';

const h1Style = {
    color: 'red'
};
  
function Hello(props) {
    return <h1 style={h1Style}>{props.msg}</h1>;
}  
const Hello_comp = <Hello msg="Hello, from Guru99 Tutorials!" />;
export default Hello_comp;

Olen lisännyt h1-tunnisteeseen värin: "punainen".

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Hello_comp from './addstyle.jsx';

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

Tulostus selaimessa on seuraava:

Työskentely Inline CSS -lähdön kanssa

Voit luoda elementille haluamasi tyyliobjektin ja lisätä tyylin lausekkeen avulla yllä olevan esimerkin mukaisesti.

Työskentely ulkoisen CSS:n kanssa ReactJS:ssä

Luodaan ulkoinen css , luokaa sitä varten kansio css/ ja lisääkää siihen style.css.

style.css

.h1tag {
color:red;
}

Lisää style.css index.html-tiedostoosi

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>ReactJS Demo</title> 
    <link href="css/style.css" rel="stylesheet" type="text/css" />
  </head> 
  <body>
    <div id = "root"></div>
    <script src = "out/script.min.js"></script>
  </body>
</html>

Lisätään nyt luokka h1-tunnisteeseen .jsx-tiedostossa

addstyle.jsx

import React from 'react';
import ReactDOM from 'react-dom';

let classforh1 = 'h1tag';
  
function Hello(props) {
    return <h1 className={classforh1}>{props.msg}</h1>;
}  
const Hello_comp = <Hello msg="Hello, from Guru99 Tutorials!" />;
export default Hello_comp;

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import Hello_comp from './addstyle.jsx';

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

Attribuutille className annetaan luokan tiedot. Testataan nyt selaimessa.

Työskentely ulkoisen CSS-lähdön kanssa

Tämän näet, kun tarkistat h1-tunnisteen selaimessa:

Työskentely ulkoisen CSS-lähdön kanssa

Voit nähdä, että class=” h1tag” on lisätty onnistuneesti h1-tunnisteeseen.

Yhteenveto

  • ReactJS on avoimen lähdekoodin käyttöliittymä JavaSkriptikirjasto käyttöliittymän rakentamiseen. Sitä ylläpitää Facebook, ja monet yritykset käyttävät sitä nykyään käyttöliittymän kehittämiseen.
  • ReactJS:n ydinominaisuudet sisältävät JSX:n, komponentit (toiminnalliset komponentit ja luokkapohjaiset komponentit), komponentin elinkaaren, rekvisiitta ja tilan tuen komponentille, javascript-lausekkeiden kanssa.
  • ReactJS:n projektin asennus selitetään käyttämällä CDN-tiedostoja ja myös npm-paketteja projektin rakentamiseen.
  • JSX on javascriptin laajennus. Se on malliskripti, jossa voit käyttää HTML- ja javascriptiä yhdessä.
  • Komponentit ovat kuin puhtaita javascript-funktioita, jotka tekevät koodista helppoa jakamalla logiikan uudelleen käytettäväksi itsenäiseksi koodiksi.
  • Tila on JavaScript-objekti, joka on samanlainen kuin rekvisiitta, jossa on dataa käytettäväksi reactjs-renderöinnin kanssa. Tilatieto on yksityinen objekti ja sitä käytetään luokan sisällä.
  • Props ovat ominaisuuksia, joita käytetään komponentin sisällä.
  • Komponenttien elinkaari on jaettu alustus-, asennus-, päivitys- ja irrotusvaiheisiin.
  • Reactjs:ssa html-syöteelementit kuten , ja <select /> on oma tila, ja se on päivitettävä, kun käyttäjä on vuorovaikutuksessa setState()-metodilla.
  • Työskentely tapahtumien kanssa reactjsissa on sama kuin olisit tehnyt javascriptissä. Voit käyttää kaikkia javascriptissä käytettyjä tapahtumakäsittelijöitä. Metodia setState() käytetään tilan päivittämiseen, kun käyttäjä on vuorovaikutuksessa minkä tahansa HTML-elementin kanssa.
  • ReactJS:n avulla voit työskennellä sekä ulkoisen css:n että sisäisen css:n kanssa JavaScript-lausekkeen avulla.

Tarkista myös: - 70 suosituinta React-haastattelun kysymystä ja vastausta (päivitetty)