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
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!