Forskjellen mellom React State vs Props

I denne artikkelen React State vs Props, vil vi finne ut store forskjeller mellom to veldig viktige reaksjonskomponenter, tilstand og rekvisitter. Vi vil dekke noen grunnleggende eksempler for å finne ut forskjeller mellom både stat og rekvisitter. Vi vil også se situasjoner der statlige eller rekvisitter kan brukes.

Tilstand: Tilstand kan betraktes som et eksempel på reaksjonskomponentklasse og brukes hovedsakelig for kommunikasjon med en komponent. Tilstanden for å reagere en komponent er et objekt som inneholder informasjon som kanskje eller ikke kan endres i løpet av en komponents livssyklus. Tilstandsobjekt lagrer verdier på egenskaper relatert til en komponent. Hver gang det er en endring i egenskaper relatert til en komponent, endres verdien assosiert med tilstandsobjekt og komponenten vil gjengi seg selv igjen, noe som betyr at den vil endre seg selv av de nye verdiene. Her er et eksempel som vil forklare reaksjonstilstand:

Kode:

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).

);
)
)

Produksjon:

La oss nå vurdere at vi ønsker å endre komponentegenskaper. For å oppnå dette, finnes det en metode som heter setState (). Legg merke til at du alltid bør bruke metoden setState () for å endre tilstanden til en komponent, den vil sørge for at komponenten vil gjengi sin tilstand på nytt.

Kode:

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)

Det er en (this.state.color)
() This.state.Modelnumber
fra (this.state.launch-year).


type = "button"
onClick = () this.changeColor
> Endre sykkelfarge
);
)
)

I koden over har vi lagt til en knapp ved å klikke på hvilke nye endringer som vil bli gjengitt på komponenten. Ovenstående kode vil gi følgende utdata på knappeklikk.

Produksjon:

Rekvisitter: Rekvisitter i ReactJs brukes til å sende data til komponenter. Rekvisitter tilsvarer javascript-rene funksjonsparametere. Siden rene funksjonsparametere ikke kan endres når de er tildelt, kan vi ikke endre verdiene deres. Eksemplet nedenfor viser hvordan rekvisitter brukes:

Kode:

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 = ;

Produksjon:

Hvis komponenten har en konstruktør, bør rekvisittobjekt være nødvendig ført til konstruktøren ved bruk av super. Her er et eksempel:

Kode:

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 ;
)
)

Produksjon:

Sammenligning fra topp til hodet mellom React State vs Props (Infographics)

Nedenfor er de 4 beste sammenligningene mellom React State vs Props :

Viktige forskjeller mellom React State vs Props

La oss diskutere noen av de viktigste viktige forskjellene mellom React State vs Props :

  1. Rekvisitter er uforanderlige, det vil si at innholdet deres ikke kan endres når de er tildelt, men tilstand er et objekt som brukes til å holde data som kan endres i fremtiden, også staten kontrollerer atferden til komponenten etter at endringen er gjort.
  2. Både rekvisitter og tilstander brukes til å lagre data relatert til en komponent.
  3. Statene kan bare brukes i klassekomponenter mens rekvisitter ikke har en slik begrensning.
  4. Rekvisitter er vanligvis satt av foreldrekomponent, mens staten styres av hendelsesbehandlere, det vil si at de administreres av selve komponenten.
  5. Tilstand er lokal for en komponent og kan ikke brukes i andre komponenter mens Props lar barnekomponenter lese verdier fra overordnede komponenter.

Sammenligningstabel for reaksjonstilstand kontra rekvisitter

Tabellen nedenfor oppsummerer sammenligningene mellom React State vs Props :

Reager tilstand Rekvisitter
React State er mutable, og verdien kan endres i henhold til krav.Rekvisitter er uforanderlige, det vil si at innholdet ikke kan endres når du er tilordnet.
Stater kan bare brukes av klassekomponenter.Rekvisitter kan brukes av klassen så vel som andre komponenter.
Angitt av foreldrekomponenten.Angi av hendelsesbehandlere, det vil si at de administreres fullstendig av komponenten selv.
Tilstand er lokal for en komponent og kan ikke brukes i andre komponenter.Rekvisitter lar barnekomponenter lese verdier fra foreldrekomponenter.

Konklusjon

Etter å ha dekket funksjoner i både stat og rekvisitter, har vi konkludert med at når det eksisterer en mulighet for eiendomsendringer relatert til en komponent, så bør vi foretrekke tilstand da det muliggjør gjengivelse av egenskaper. Rekvisitter derimot, lar barnekomponenter få tilgang til metoder som er definert i foreldrekomponenter, dette minimerer behovet for at barnekomponenter har status. Rekvisitter er skrivebeskyttet i barnekomponenter. Det er verdt å merke seg at tilstander og rekvisitter er veldig viktige komponenter i reaksjonsarkitekturen.

Anbefalte artikler

Dette er en guide til React State vs Props. Her diskuterer vi også nøkkelforskjellene React State vs Props med infografikk og sammenligningstabell. Du kan også se på følgende artikler for å lære mer -

  1. Spørsmål om GitHub-intervju
  2. Topp forskjeller - Jira vs Github
  3. Topp 19 ReactJs intervjuspørsmål
  4. Topp 10 bruk av React JS
  5. Topp 11 verktøy for å reagere med funksjonene