Rozdiel medzi stavom reakcie a rekvizitami

V tomto článku Reagovať State vs rekvizity, budeme zistiť hlavné rozdiely medzi dvoma veľmi dôležité reagovať komponenty, štát a rekvizity. Budeme sa venovať niekoľkým základným príkladom, aby sme zistili rozdiely medzi stavom a rekvizitami. Uvidíme tiež situácie, v ktorých možno použiť štát alebo rekvizity.

Stav: Stav sa môže považovať za príklad triedy reakčných komponentov a používa sa hlavne na komunikáciu s komponentom. Stav z a reagovať súčasť je objekt, ktorý obsahuje informácie, ktoré môžu alebo nemusia meniť v priebehu životného cyklu komponenty. Stavový objekt ukladá hodnoty vlastností súvisiacich s komponentom. Vždy, keď dôjde k zmene vlastností súvisiacich s komponentom, hodnota spojená so stavovými objektmi sa zmení a komponent sa znova vykreslí, čo znamená, že sa zmení pomocou nových hodnôt. Tu je príklad, ktorý vysvetlí reakčný stav:

kód:

class Bike extends React.Component (
constructor(props) (
super(props);
this.state = (
Company: "Yamaha",
Modelnumber : "R15",
color: "blue",
launch-year: 2001
);
)
render() (
return (
Name (this.state. Company)
This is a (this.state.color)
(this.state. Modelnumber)
from (this.state. launch-year).

);
)
)

class Bike extends React.Component (
constructor(props) (
super(props);
this.state = (
Company: "Yamaha",
Modelnumber : "R15",
color: "blue",
launch-year: 2001
);
)
render() (
return (
Name (this.state. Company)
This is a (this.state.color)
(this.state. Modelnumber)
from (this.state. launch-year).

);
)
)

class Bike extends React.Component (
constructor(props) (
super(props);
this.state = (
Company: "Yamaha",
Modelnumber : "R15",
color: "blue",
launch-year: 2001
);
)
render() (
return (
Name (this.state. Company)
This is a (this.state.color)
(this.state. Modelnumber)
from (this.state. launch-year).

);
)
)

class Bike extends React.Component (
constructor(props) (
super(props);
this.state = (
Company: "Yamaha",
Modelnumber : "R15",
color: "blue",
launch-year: 2001
);
)
render() (
return (
Name (this.state. Company)
This is a (this.state.color)
(this.state. Modelnumber)
from (this.state. launch-year).

);
)
)

class Bike extends React.Component (
constructor(props) (
super(props);
this.state = (
Company: "Yamaha",
Modelnumber : "R15",
color: "blue",
launch-year: 2001
);
)
render() (
return (
Name (this.state. Company)
This is a (this.state.color)
(this.state. Modelnumber)
from (this.state. launch-year).

);
)
)

Výkon:

Teraz zvážme, či chceme zmeniť vlastnosti komponentov. Na dosiahnutie tohto cieľa existuje metóda nazývaná setState (). Všimnite si, že by ste mali vždy použiť metódu setState () pre zmenu stavu komponenty, bude to uistite sa, že súčasť bude znovu spracovala svoj stav.

kód:

class Car extends React.Component (
constructor(props) (
super(props);
this.state = (
Company: "Ford",
Modelnumber : "Mustang",
color: "red",
launch-year: 1964
);
)
changeColor = () => (
this.setState((color: "green"));
)
render() (
return (
My (this.state.Company)

class Car extends React.Component (
constructor(props) (
super(props);
this.state = (
Company: "Ford",
Modelnumber : "Mustang",
color: "red",
launch-year: 1964
);
)
changeColor = () => (
this.setState((color: "green"));
)
render() (
return (
My (this.state.Company)

class Car extends React.Component (
constructor(props) (
super(props);
this.state = (
Company: "Ford",
Modelnumber : "Mustang",
color: "red",
launch-year: 1964
);
)
changeColor = () => (
this.setState((color: "green"));
)
render() (
return (
My (this.state.Company)

Je to (this.state.color)
(This.state.Modelnumber)
od (this.state.launch-year).


type = "tlačidlo"
onClick = (this.changeColor)
> Zmena farby bicykla
);
)
)

Do vyššie uvedeného kódu sme pridali tlačidlo po kliknutí na, ktoré nové zmeny sa vykonajú na komponente. Vyššie uvedený kód vytvorí po kliknutí na tlačidlo nasledujúci výstup.

Výkon:

Rekvizity: Rekvizity v ReactJs sa používajú na odosielanie údajov do komponentov. Rekvizity sú ekvivalentné javascriptovým čistým funkčným parametrom. Pretože parametre čistej funkcie nemožno po priradení zmeniť, nemôžeme zmeniť ich hodnoty. Nižšie uvedený príklad ukazuje, ako sa používajú rekvizity:

kód:

class Bike extends React.Component (
render() (
return This is (this.props.Companyname)
)
)
const component = ;

class Bike extends React.Component (
render() (
return This is (this.props.Companyname)
)
)
const component = ;

class Bike extends React.Component (
render() (
return This is (this.props.Companyname)
)
)
const component = ;

Výkon:

Ak komponent má konštruktor, potom by mal byť objekt rekvizity potrebné odovzdať konštruktoru pomocou super. Tu je príklad:

kód:

class Bike extends React.Component (
constructor(props) (
super(props);
)
render() (
return This is a Bike ;
)
)

class Bike extends React.Component (
constructor(props) (
super(props);
)
render() (
return This is a Bike ;
)
)

class Bike extends React.Component (
constructor(props) (
super(props);
)
render() (
return This is a Bike ;
)
)

Výkon:

Porovnanie medzi jednotlivými stavmi medzi reakčným stavom a rekvizitami (infografika)

Nižšie sú uvedené najlepšie 4 porovnania medzi stavom React vs Props :

Kľúčové rozdiely medzi stavom reakcie a rekvizitami

Poďme diskutovať o niektorých hlavných kľúčových rozdieloch medzi React State State a Props :

  1. Rekvizity sú nemenné, čo znamená, že ich obsah sa po priradení nemôže zmeniť, ale stav je objekt, ktorý sa používa na uchovávanie údajov, ktoré sa môžu v budúcnosti zmeniť. Stav tiež riadi správanie sa zložky po vykonaní zmeny.
  2. Props aj state sa používajú na ukladanie údajov týkajúcich sa komponentu.
  3. Štáty sa môžu používať iba v komponentoch triedy, zatiaľ čo rekvizity takéto obmedzenie nemajú.
  4. Rekvizity sú zvyčajne nastavené nadradenou zložkou, zatiaľ čo stav je riadený obsluhou udalostí, ktorá je riadená samotnou zložkou.
  5. Stav je lokálny pre komponent a nemôže byť použitý v iných komponentoch, zatiaľ čo Props umožňuje podradeným komponentom čítať hodnoty z rodičovských komponentov.

Porovnávacia tabuľka stavu reakcie verzus rekvizity

V nasledujúcej tabuľke sú zhrnuté porovnania medzi stavom React vs Props :

Reakčný štát rekvizity
Stav reakcie je premenlivý a jeho hodnota sa môže meniť podľa požiadavky.Rekvizity sú nemenné, to znamená, že ich obsah nemožno po priradení zmeniť.
Štáty môžu používať iba komponenty triedy.Rekvizity môžu byť použité triedou, ako aj inými komponentmi.
Nastavuje nadradený komponent.Obslužné programy udalostí nastavujú, že sú úplne riadené samotným komponentom.
Stav je lokálny pre komponent a nemôže sa použiť v iných komponentoch.Rekvizity umožňujú podradeným komponentom čítať hodnoty z nadradených komponentov.

záver

Po pokrytí vlastností stavov a rekvizít sme dospeli k záveru, že vždy, keď existuje možnosť majetkových zmien súvisiacich s komponentom, mali by sme uprednostniť stav, pretože to umožňuje opätovné vykreslenie vlastností. Na druhej strane rekvizity umožňujú podradeným komponentom prístup k metódam, ktoré sú definované v nadradených komponentoch, čo minimalizuje potrebu, aby podriadené komponenty mali svoj stav. Rekvizity sú v podradených komponentoch iba na čítanie. Stojí za zmienku, že stav a rekvizity sú veľmi dôležitými súčasťami architektúry reakcií.

Odporúčané články

Toto je sprievodca React State vs Props. Tu tiež diskutujeme kľúčové rozdiely React State vs Props s infografikou a porovnávaciu tabuľku. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Rozhovor s GitHubom
  2. Najlepšie rozdiely - Jira vs Github
  3. Top 19 otázok o rozhovoroch spoločnosti ReactJs
  4. Top 10 použití React JS
  5. Top 11 nástrojov reakcie s ich funkciami

Kategórie: