Diferença entre React State vs Props

Neste artigo React State vs Props, descobriremos grandes diferenças entre dois componentes de reação muito importantes, state e props. Abordaremos alguns exemplos básicos para descobrir diferenças entre estado e objetos. Além disso, veremos situações em que o estado ou adereços podem ser usados.

Estado: o estado pode ser considerado como uma instância da classe de componente de reação e é usado principalmente para comunicação com um componente. O estado de reação de um componente é um objeto que contém informações que podem ou não ser alteradas durante o ciclo de vida de um componente. O objeto State armazena valores de propriedades relacionadas a um componente. Sempre que houver uma alteração nas propriedades relacionadas a um componente, o valor associado ao objeto de estado será alterado e o componente será renderizado novamente, o que significa que ele será alterado pelos novos valores. Aqui está um exemplo que explica o estado de reação:

Código:

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

);
)
)

Resultado:

Agora, vamos considerar que queremos alterar as propriedades do componente. Para conseguir isso, existe um método chamado setState (). Observe que você sempre deve usar o método setState () para alterar o estado de um componente, ele garantirá que o componente volte a renderizar seu estado.

Código:

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)

É uma (this.state.color)
(this.state.Modelnumber)
a partir de (this.state.launch-year).


type = "button"
onClick = (this.changeColor)
> Mude a cor da bicicleta
);
)
)

No código acima, adicionamos um botão ao clicar em que novas alterações serão renderizadas no componente. O código acima produzirá a seguinte saída no clique do botão.

Resultado:

Adereços: os adereços no ReactJs são usados ​​para enviar dados aos componentes. Props são equivalentes aos parâmetros de função pura de javascript. Como parâmetros de função pura não podem ser alterados depois de atribuídos, não podemos alterar seus valores. O exemplo abaixo mostra como os adereços são usados:

Código:

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

Resultado:

Se o componente tiver um construtor, o objeto props deve ser necessário passado ao construtor usando super. Aqui está um exemplo:

Código:

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

Resultado:

Comparação cara a cara entre React State vs Props (Infográficos)

Abaixo estão as 4 principais comparações entre Estado de reação e Adereços :

Principais diferenças entre estado de reação e adereços

Vamos discutir algumas das principais diferenças principais entre React State vs Props :

  1. Os adereços são imutáveis, pois seu conteúdo não pode ser alterado depois de atribuído, mas state é um objeto usado para armazenar dados que podem ser alterados no futuro. O estado também controla o comportamento do componente após a alteração.
  2. Props e estados são usados ​​para armazenar dados relacionados a um componente.
  3. Os estados só podem ser usados ​​em componentes de classe, enquanto os adereços não têm essa restrição.
  4. Os adereços geralmente são definidos pelo componente pai, enquanto o estado é controlado pelos manipuladores de eventos, ou seja, eles são gerenciados pelo próprio componente.
  5. O estado é local para um componente e não pode ser usado em outros componentes, enquanto o Props permite que os componentes filhos leiam valores dos componentes pai.

Tabela de comparação do estado de reação x adereços

A tabela abaixo resume as comparações entre Estado de reação e adereços :

Estado da reação Adereços
O estado da reação é mutável e seu valor pode ser alterado conforme o requisito.Os acessórios são imutáveis, ou seja, seu conteúdo não pode ser alterado depois de atribuído.
Os estados podem ser usados ​​apenas por componentes de classe.Os acessórios podem ser usados ​​por classe, bem como outros componentes.
Definido pelo componente pai.Definido pelos manipuladores de eventos, ou seja, eles são completamente gerenciados pelo próprio componente.
O estado é local para um componente e não pode ser usado em outros componentes.Os adereços permitem que os componentes filhos leiam valores dos componentes pai.

Conclusão

Depois de abordar os recursos de estado e adereços, concluímos que sempre que existe a possibilidade de alterações de propriedades relacionadas a um componente, devemos preferir o estado, pois isso permite a nova renderização das propriedades. Os adereços, por outro lado, permitem que os componentes filhos acessem os métodos definidos nos componentes pais, o que minimiza a necessidade de componentes filhos terem seu estado. Adereços são somente leitura em componentes filho. Vale a pena notar que estado e adereços são componentes muito importantes da arquitetura de reação.

Artigos recomendados

Este é um guia para React State vs Props. Aqui também discutimos as principais diferenças entre Estado de reação e Props com infográficos e tabela de comparação. Você também pode consultar os seguintes artigos para saber mais -

  1. Perguntas da entrevista do GitHub
  2. Principais diferenças - Jira vs Github
  3. As 19 principais perguntas da entrevista do ReactJs
  4. Os 10 principais usos do React JS
  5. As 11 melhores ferramentas para reagir com seus recursos