Qual a diferença entre props e states no React?

Vamos entender de uma vez por todas qual a diferença entre as PROPS e STATES.

De uma maneira bem resumida podemos dizer que em um componente:

  • props : São variáveis passadas para ele ou recebidas por seu componente pai.

Por exemplo, um componente pai pode incluir um componente filho chamando:

<Filmes />

O pai pode passar um prop usando esta sintaxe:

<Filmes nome="Vingadores"/>

Agora no componente Filmes dentro do construtor ChildComponent, podemos acessar o prop:

class Filmes extends React.Component {
  constructor(props) {
    super(props)
    console.log(props.nome)
  }
}

E qualquer metodo/função usado nessa classe pode acessar essa prop através de this.props.

Mas devemos sempre lembrar que as props são valores estáticos, não podemos alterar ela.

  • States: Já as states são valores dinamicos. Ou seja conseguimos alterar o valor (estado) dentro dela.

As states do componente são iniciacializadas dentro de um construtor:

class Filmes extends React.Component {
  constructor(props) {
    super(props)
    
    this.state = {
    nome: 'Homem Aranha'
   };

  }

  render () { 
    return ( 
      <p>Nome do Filme: { this.state.nome } </ p> 
  )

}

Você nunca deve alterar diretamente o valor dessa state: (Exemplo)

this.state.nome = ‘Outro Nome’;

Você nunca deve fazer da forma acima.. As states podem serem alteradas usando a função setState() , vamos ao exemplo:

class Filmes extends React.Component {
  constructor(props) {
    super(props)
    
    this.state = {
    nome: 'Homem Aranha'
   };

   this.mudaNome() = this.mudaNome.bind(this);

  }

  mudaNome() { 
    this.setState ({nome: 'Toy Story'});
  }

  render () { 
    return ( 
      <button onClick = {this.mudaNome}> Mudar </ button> 
      <p> {this.state.nome} </ p> 
  )

}

Show de bola agora!! Por hoje é isso, você entendeu qual a diferença de props e states no React.

Agora só partir pro código 🙂