DEV Community

Ricardo Brito
Ricardo Brito

Posted on

State

Alt Text

O estado de uma aplicação representa as características dela naquele momento. Por exemplo: os dados do usuário foram carregados, o botão está ativo, o usuário está na página de contato e etc.

const App = () => {
  const ativo = true;

  return (
    <button disabled={!ativo}>{ativo ? 'Botão Ativo' : 'Botão Inativo'}</button>
  );
};
Enter fullscreen mode Exit fullscreen mode

Hooks

Hooks são funções especiais do React que permitem controlarmos o estado e o ciclo de vida de componentes funcionais.

useState

É uma função que retorna uma Array com 2 valores. O primeiro valor guarda o dado do estado atual, pode ser qualquer tipo de dado como strings, arrays, números, boolean, null, undefined e objetos. O segundo valor é uma função que pode ser utilizada para modificarmos o estado do primeiro valor.

Quando a função de modificação do estado é ativada, todos os componentes que dependerem do estado, serão renderizados novamente e os seus filhos também. É isso que garante a reatividade de componentes funcionais no React.

const App = () => {
  const [ativo, setAtivo] = useState(true);
  // É a mesma coisa que:
  // const ativoArray = useState(true);
  // const ativo = ativoArray[0];
  // const setAtivo = ativoArray[1];

  return (
    <button onClick={() => setAtivo(!ativo)}>
      {ativo ? 'Botão Ativo' : 'Botão Inativo'}
    </button>
  );
};
Enter fullscreen mode Exit fullscreen mode

O uso de setNome é uma convenção do React para a função de modificação do estado

Múltiplos Estados

Não existem limites para o uso do useState, podemos definir diversos no mesmo componente.

const App = () => {
  const [contar, setContar] = useState(0);
  const [ativo, setAtivo] = useState(false);
  const [dados, setDados] = useState({ nome: '', idade: '' });

  return <div></div>;
};
Enter fullscreen mode Exit fullscreen mode

Top comments (0)