Gerenciamento de Estado com o Hook useState
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, deve-se 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 de variável que descreva com precisão qual estado 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 padrão: 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çãosetStatecorrespondente normalmente será chamada desetMail.
Note
Ao chamar
setState, o React faz o re-render do componente e atualiza o estado com o novo valor. É importante observar que, ao utilizaruseState, 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 for clicado.
Explicação linha por linha:
- Linha 1: Importação do hook
useStateda biblioteca React para utilizar sua funcionalidade; - Linha 3: Definição do componente
Counterutilizando a sintaxe convencional de função; - Linha 4: Inicialização do 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, utilizamos 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, passamos a funçãoincrement.
Código completo do aplicativo:
Exemplo 2:
Vamos construir o componente Form com seu estado independente. Solicitamos ao usuário que 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 uma 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 dentro dos 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, utiliza-se a funçãosetUserNamepara atualizar o estado com o valor do campo de entrada; - Linhas 11-21: Renderização do markup do componente.
- Na linha 15, o valor inicial do campo de entrada é atribuído a
userNameutilizando 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
Can you explain how the useState hook works in more detail?
What are some common use cases for useState in React components?
Can you show how to use multiple useState hooks in a single component?
Awesome!
Completion rate improved to 2.17
Gerenciamento de Estado com o Hook 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, deve-se 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 de variável que descreva com precisão qual estado 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 padrão: 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çãosetStatecorrespondente normalmente será chamada desetMail.
Note
Ao chamar
setState, o React faz o re-render do componente e atualiza o estado com o novo valor. É importante observar que, ao utilizaruseState, 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 for clicado.
Explicação linha por linha:
- Linha 1: Importação do hook
useStateda biblioteca React para utilizar sua funcionalidade; - Linha 3: Definição do componente
Counterutilizando a sintaxe convencional de função; - Linha 4: Inicialização do 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, utilizamos 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, passamos a funçãoincrement.
Código completo do aplicativo:
Exemplo 2:
Vamos construir o componente Form com seu estado independente. Solicitamos ao usuário que 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 uma 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 dentro dos 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, utiliza-se a funçãosetUserNamepara atualizar o estado com o valor do campo de entrada; - Linhas 11-21: Renderização do markup do componente.
- Na linha 15, o valor inicial do campo de entrada é atribuído a
userNameutilizando 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!