Gerenciando Estado com useState
Deslize para mostrar o menu
O hook useState é um hook fundamental do React que permite que componentes funcionais tenham um estado. Ele fornece uma maneira de declarar e atualizar variáveis de estado dentro de um componente.
Sintaxe:
Para utilizar o hook useState, basta chamá-lo e passar o estado inicial (initialState) como argumento. Ele retorna um array com dois elementos: o valor atual do estado (state) e uma função (setState) para atualizar o estado.
const [state, setState] = useState(initialState);
-
É possível escolher qualquer palavra como nome para a variável de
state. Recomenda-se utilizar um nome que descreva com precisão o que está sendo armazenado ou atualizado, comoinputValue,page,number,name, entre outros; -
Da mesma forma, ao utilizar a função
setState, há flexibilidade na escolha do nome da função. No entanto, seguir um padrão específico é uma convenção comum: o nome da funçãosetStatedeve começar com "set" seguido do nome da variável de estado correspondente. Por exemplo, se a variável destateformail, a função desetStatecorrespondente normalmente seria chamada desetMail.
Ao chamar setState, o React renderiza novamente o componente e atualiza o estado com o novo valor. É importante observar que, ao utilizar useState, a variável de estado não precisa ser um objeto. Ela pode ser um valor primitivo (como número, string ou booleano) ou um valor complexo (como array ou objeto).
Exemplo 1:
Vamos construir o componente Counter, que irá manter seu próprio estado. Quando o botão Incrementar for clicado, atualizaremos o estado e acionaremos uma nova renderização do componente.
import React, { useState } from "react";
const Counter = () => {
const [count, setCount] = useState(0);
const increment = () => {
setCount(count + 1);
};
return (
<div>
<p>Count: {count}</p>
<button onClick={increment}>Increment</button>
</div>
);
};
Neste exemplo, o hook useState é utilizado para declarar uma variável de estado count com valor inicial 0. A função setCount é usada para atualizar a variável count sempre que o botão é clicado.
Explicação linha por linha:
- Linha 1: Importa-se o hook
useStateda biblioteca React para utilizar sua funcionalidade; - Linha 3: Define-se o componente
Counterutilizando a sintaxe convencional de função; - Linha 4: Inicializa-se o estado utilizando o hook
useState;
countrepresenta o valor do contador. Seu valor inicial é0, especificado dentro dos parênteses deuseState(0);setCounté a função que atualiza o estado quando necessário.
- Linhas 6-8: Esta função arrow do JavaScript lida com a lógica de atualização do estado. Ela é executada quando o botão "incrementar" é clicado. Dentro da função, utiliza-se a função
setCountpara atualizar o estado; - Linhas 10-15: Renderiza a marcação do componente. Na linha 12, o valor atual do estado (
count) é exibido. O botão na linha 13 utiliza o atributoonClickpara definir a função a ser executada ao ser clicado. Neste caso, passa-se a funçãoincrement.
Código completo do aplicativo:
Exemplo 2:
Vamos construir o componente Form com seu estado independente. Solicitamos que o usuário insira seu nome no campo de entrada e, dependendo do que for digitado, modificamos o conteúdo exibido.
import React, { useState } from "react";
const Form = () => {
const [userName, setUserName] = useState("");
const handleChange = (event) => {
const inputValue = event.target.value;
setUserName(inputValue);
};
return (
<div>
<input
type="text"
value={userName}
onChange={handleChange}
placeholder="Your name"
/>
<p>Hello, {userName}!</p>
</div>
);
};
Neste exemplo, o hook useState é utilizado para declarar a variável de estado userName com valor inicial de string vazia. A função setUserName atualiza a variável userName sempre que necessário.
Explicação linha por linha:
- Linha 1: Importação do hook
useStateda biblioteca React para utilizar sua funcionalidade; - Linha 3: Definição do componente
Formutilizando a sintaxe padrão de função; - Linha 4: Definição do estado inicial utilizando o hook
useState;
userNamerepresenta o valor do campo de entrada, inicialmente definido como uma string vazia (""), especificada nos parênteses deuseState("");setUserNameé a função que permite atualizar o estado quando necessário.
- Linhas 6-9: Esta função arrow do JavaScript lida com a lógica de atualização do estado. Ela é acionada quando o usuário digita algo no campo. O valor do campo é obtido dentro da função usando
event.target.value. Em seguida, a funçãosetUserNameé utilizada para atualizar o estado com o valor do campo de entrada; - Linhas 11-21: Renderização do markup do componente.
- Na linha 15, o valor de
userNameé atribuído como valor inicial do campo de entrada usando o atributovalue; - Na linha 16, o atributo
onChangeé utilizado para especificar a função a ser chamada quando houver alteração no campo de entrada.
Código completo do aplicativo:
1. Qual das seguintes afirmações é verdadeira sobre o hook useState?
2. Qual é o propósito da função setState retornada pelo hook useState?
3. Como definir o valor inicial do estado ao usar o hook useState?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo