Skip to content

Commit 9a5832a

Browse files
committed
docs(pt-br): general improvements to the translation
1 parent 1b566a1 commit 9a5832a

File tree

1 file changed

+23
-23
lines changed

1 file changed

+23
-23
lines changed

src/content/learn/state-a-components-memory.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Componentes comumente precisam mudar o que está na tela como resultado de uma i
1919

2020
## Quando uma variável comum não é o suficiente {/*when-a-regular-variable-isnt-enough*/}
2121

22-
Aqui está um componente que renderiza a imagem de uma escultura. Clicando no botão "Next" deveria mostrar a próxima escultura mudando o `index` para `1`, então `2`, e assim por diante. Entretanto, isso **não funcionará** (você pode tentar!):
22+
Aqui está um componente que renderiza a imagem de uma escultura. Ao clicar no botão "Next" ele deveria mostrar a próxima escultura mudando o `index` para `1`, então `2`, e assim por diante. Entretanto, isso **não funcionará** (você pode tentar!):
2323

2424
<Sandpack>
2525

@@ -153,13 +153,13 @@ button {
153153

154154
O manipulador de eventos `handleClick` está atualizando a variável local, `index`. Mas duas coisas previnem essa mudança de ser visível:
155155

156-
1. **Variáveis locais não persistem entre renderizações** Quando o React renderiza esse componente uma segunda vez, ele o renderiza do princípio--sem considerar quaisquer mudanças às variáveis locais.
156+
1. **Variáveis locais não persistem entre renderizações.** Quando o React renderiza esse componente uma segunda vez, ele o faz do princípio--sem considerar quaisquer mudanças às variáveis locais.
157157
2. **Mudanças às variáveis locais não acionam renderizações.** O React não percebe que precisa renderizar o componente novamente com os novos dados.
158158

159159
Para atualizar um componente com novos dados, duas coisas precisam acontecer:
160160

161161
1. **Reter** os dados entre renderizações.
162-
2. **Acionar** o React para renderizar o componente com os novos dados (re-renderização)
162+
2. **Acionar** o React para renderizar o componente com os novos dados (re-renderização).
163163

164164
O Hook [`useState`](/reference/react/useState) provê essas duas coisas:
165165

@@ -188,9 +188,9 @@ const [index, setIndex] = useState(0);
188188

189189
`index` é uma variável de estado e `setIndex` é a função de definição.
190190

191-
> A sintaxe `[` e `]` aqui é chamada de [desestruturação de array](https://javascript.info/destructuring-assignment) e ela permite que você leia valores de um array. O array retornado pelo `useState` sempre tem exatamente dois itens.
191+
> A sintaxe `[` e `]` aqui é chamada de [desestruturação de array](https://javascript.info/destructuring-assignment) e ela permite que você leia valores de um array. O array retornado pelo `useState` sempre possui exatamente dois itens.
192192
193-
Assim é como eles trabalham juntos em `handleClick`:
193+
Essa é a maneira como eles trabalham juntos em `handleClick`:
194194

195195
```js
196196
function handleClick() {
@@ -337,17 +337,17 @@ No React, `useState`, assim como qualquer outra função iniciada com "`use`",
337337

338338
*Hooks* são funções especiais que estão disponíveis somente enquanto o React está [renderizando](/learn/render-and-commit#step-1-trigger-a-render) (as quais nós entraremos em mais detalhes na próxima página). Eles permitem que você "se conecte" a diferentes recursos do React.
339339

340-
State é só um desses recursos, mas você irá conhecer os outros Hooks mais tarde.
340+
State é só um destes recursos, mas você irá conhecer os outros Hooks mais tarde.
341341

342342
<Pitfall>
343343

344-
**Hooks--funções iniciadas com `use`-só podem ser chamadas no nível superior dos seus componentes ou em [seus próprios Hooks.](/learn/reusing-logic-with-custom-hooks)** Você não pode chamar Hooks dentro de condições, loops, ou outras funções aninhadas. Hooks são funções, mas é útil pensar neles como declarações incondicionais sobre as necessidades do seu componente. Você "usa" recursos do React no topo de seu componente similarmente a como você "importa" módulos no topo de seu arquivo.
344+
**Hooks--funções iniciadas com `use`--só podem ser chamadas no nível superior dos seus componentes ou em [seus próprios Hooks.](/learn/reusing-logic-with-custom-hooks)** Você não pode chamar Hooks dentro de condições, loops, ou outras funções aninhadas. Hooks são funções, mas é útil pensar neles como declarações incondicionais sobre as necessidades do seu componente. Você "usa" recursos do React no topo de seu componente similarmente a como você "importa" módulos no topo de seu arquivo.
345345

346346
</Pitfall>
347347

348348
### Anatomia do `useState` {/*anatomy-of-usestate*/}
349349

350-
Quando você chama [`useState`](/reference/react/useState), você está dizendo ao React que você quer que esse componente lembre-se de algo:
350+
Ao chamar [`useState`](/reference/react/useState), você está dizendo ao React que você quer que esse componente lembre-se de algo:
351351

352352
```js
353353
const [index, setIndex] = useState(0);
@@ -357,11 +357,11 @@ Nesse caso, você quer que o React lembre-se de `index`.
357357

358358
<Note>
359359

360-
A convenção é nomear esse par como `const [algo, setAlgo]`. Você poderia nomeá-lo de qualquer coisa, mas convenções tornam as coisas mais fáceis de se entender entre projetos.
360+
A convenção é nomear esse par como `const [algo, setAlgo]`. Você poderia nomeá-lo de qualquer outra coisa, mas convenções tornam as coisas mais fáceis de se entender entre projetos.
361361

362362
</Note>
363363

364-
O único argumento para o `useState` é o **valor inicial** da sua variável de state. Nesse exemplo, o valor inicial do `index` é definido como `0` com `useState(0)`.
364+
O único argumento para o `useState` é o **valor inicial** da sua variável de state. Nesse exemplo, o valor inicial de `index` é definido como `0` com `useState(0)`.
365365

366366
Toda vez que seu componente é renderizado, `useState` lhe dá um array contendo dois valores:
367367

@@ -375,7 +375,7 @@ const [index, setIndex] = useState(0);
375375
```
376376

377377
1. **Seu componente renderiza pela primeira vez.** Porque você passou `0` ao `useState` como o valor inicial de `index`, ele retornará `[0, setIndex]`. O React lembra-se de que `0` é o valor de state mais recente.
378-
2. **Você atualiza o state.** Quando um usuário clica no botão, ele chama `setIndex(index + 1)`. `index` é `0`, então é `setIndex(1)`. Isso diz ao React para se lembrar que `index` é `1` a partir de agora e aciona outra renderização.
378+
2. **Você atualiza o state.** Quando um usuário clica no botão, ele chama `setIndex(index + 1)`. `index` é `0`, logo `setIndex(1)`. Isto diz ao React para se lembrar que `index` é `1` a partir de agora e aciona outra renderização.
379379
3. **A segunda renderização do seu componente.** O React ainda vê `useState(0)`, mas porque ele *lembra* que você definiu `index` como `1`, retorna `[1, setIndex]` em vez disto.
380380
4. E assim por diante!
381381

@@ -520,15 +520,15 @@ button {
520520

521521
</Sandpack>
522522

523-
É uma boa ideia ter múltiplas variáveis de state se este não for relacionado, como `index` e `showMore` nesse exemplo. Mas se você perceber que frequentemente altera duas variáveis de estado juntas, pode ser mais fácil combiná-las em uma. Por exemplo, se você tem um formulário com vários campos, é mais conveniente ter uma única variável de state a qual armazena um objeto do que uma variável por campo. Leia [Escolhendo a Estrutura do State](/learn/choosing-the-state-structure) para mais dicas.
523+
É uma boa ideia ter múltiplas variáveis de state se estas não for relacionadas, como `index` e `showMore` nesse exemplo. Mas se você perceber que frequentemente altera duas variáveis de estado juntas, pode ser mais fácil combiná-las em uma. Por exemplo, se você tem um formulário com vários campos, é mais conveniente ter uma única variável de state a qual armazena um objeto do que uma variável por campo. Leia [Escolhendo a Estrutura do State](/learn/choosing-the-state-structure) para mais dicas.
524524

525525
<DeepDive>
526526

527527
#### Como o React sabe qual state retornar? {/*how-does-react-know-which-state-to-return*/}
528528

529-
Você pode ter notado que a chamada ao `useState` não recebe nenhuma informação sobre *a qual* variável de state ela se refere. Não há um "identificador" que é passado ao `useState`, então como este sabe qual dessas variáveis de state retornar? Depende em alguma magia como analisar suas funções? A resposta é não.
529+
Você pode ter notado que a chamada ao `useState` não recebe nenhuma informação sobre *a qual* variável de state ela se refere. Não há um "identificador" que é passado ao `useState`, então como este sabe qual dessas variáveis de state retornar? Depende de alguma magia como analisar suas funções? A resposta é não.
530530

531-
Em vez disso, para viabilizar sintaxe concisa, os Hooks **dependem em uma chamada estável em toda renderização do mesmo componente.** Isso funciona bem na prática porque se você seguir a regra acima ("só chamar Hooks no nível do topo"), os Hooks sempre serão chamados na mesma ordem. Adicionalmente, um [plugin de linter](https://www.npmjs.com/package/eslint-plugin-react-hooks) pega a maioria dos erros.
531+
Em vez disso, para viabilizar sintaxe concisa, os Hooks **dependem em uma chamada estável feita em toda renderização do mesmo componente.** Isso funciona bem na prática porque se você seguir a regra acima ("só chamar Hooks no nível do topo"), os Hooks sempre serão chamados na mesma ordem. Adicionalmente, um [plugin de *linter*](https://www.npmjs.com/package/eslint-plugin-react-hooks) pega a maioria dos erros.
532532

533533
Internamente, o React armazena um array de pares de state para cada componente. Ele também mantêm o índice do par atual, o qual é definido como `0` antes da renderização. A cada vez que você chama `useState`, o React lhe dá o próximo par de state e incrementa o índice. Você pode ler mais sobre esse mecanismo em [React Hooks: Não é Mágica, Apenas Arrays.](https://medium.com/@ryardley/react-hooks-not-magic-just-arrays-cd4f1857236e)
534534

@@ -893,18 +893,18 @@ button {
893893

894894
Isto é o que faz do state diferente de variáveis comuns que você pode declarar no topo de seu módulo. State não é atrelado a uma chamada de função em particular ou a um lugar no código, mas sim é "local" a um lugar específico na tela. Você renderizou dois componentes `<Gallery />`, então seus states são armazenados separadamente.
895895

896-
Perceba também como o componente `Page` não "sabe" nada sobre o state de `Gallery` ou se até ele tem algum. Diferentemente das props, **o state é completamente privado ao componente declarando-o.** O componente pai não pode alterá-lo. Isso permite que você adicione sate a qualquer componente ou remova-o sem impactar o restante dos componentes.
896+
Perceba também como o componente `Page` não "sabe" nada sobre o state de `Gallery` ou se até ele tem algum. Diferentemente das props, **o state é completamente privado ao componente que o declara.** O componente pai não pode alterá-lo. Isso permite que você adicione state a qualquer componente ou remova-o sem impactar o restante dos componentes.
897897

898898
E se você quisesse que ambas as galerias mantivessem seus states sincronizados? A maneira correta de fazer isso em React se dá por meio da *remoção* do state dos componentes filhos e armazenando-o no componente pai comum mais próximo a eles. As próximas páginas focarão na organização do state de um único componente, mas nós iremos voltar a este assunto em [Compartilhando State Entre Componentes.](/learn/sharing-state-between-components)
899899

900900
<Recap>
901901

902902
* Use uma variável de state quando um componente precisa "lembrar" de alguma informação entre renderizações.
903903
* Variáveis de state são declaradas chamando o Hook `useState`.
904-
* Hooks são funções especiais que começas com `use`. Eles permitem que você "se conecte" a recursos do React como state.
904+
* Hooks são funções especiais que começam com `use`. Eles permitem que você "se conecte" a recursos do React como o state.
905905
* Hooks podem lembrá-lo de importações: eles precisam se chamados incondicionalmente. Chamar Hooks, incluindo `useState`, só é válido no nível do topo de um componente ou em outro Hook.
906-
* O Hook `useState` retorna um par de valores: o state atual e a função para o atualizar.
907-
* Você pode ter mais de uma variáveis de state. Internamente, o React as combina por sua ordem.
906+
* O Hook `useState` retorna um par de valores: o state atual e a função para atualizá-lo.
907+
* Você pode ter mais de uma variável de state. Internamente, o React as combina por sua ordem.
908908
* State é privado ao componente. Se você o renderizar em dois lugares, cada cópia recebe seu próprio state.
909909

910910
</Recap>
@@ -1225,7 +1225,7 @@ Note como `hasPrev` e `hasNext` são usados para *ambos* a JSX retornada e dentr
12251225

12261226
#### Corrigir entradas de formulário travadas {/*fix-stuck-form-inputs*/}
12271227

1228-
Quando você digita nos campos de entrada, nada aparece. É como se os valores de entrada estivessem "presos" com strings vazias. O `value` do primeiro `<input>` é definido para sempre corresponder à variável `lastName`. Isso está correto. Ambas as entradas possuem manipuladores de evento `onChange`, os quais tentam atualizar as variáveis baseados na entrada de usuário mais recente (`e.target.value`). Entretanto, as variáveis não parecem se "lembrar" de seus valores entre re-renderizações. Conserte isso usando variáveis de state como alternativa.
1228+
Quando você digita nos campos de entrada, nada aparece. É como se os valores de entrada estivessem "presos" com strings vazias. O `value` do primeiro `<input>` é definido para sempre corresponder à variável `lastName`. Isso está correto. Ambas as entradas possuem manipuladores de evento `onChange`, os quais tentam atualizar as variáveis baseados na entrada mais recente do usuário (`e.target.value`). Entretanto, as variáveis não parecem se "lembrar" de seus valores entre re-renderizações. Conserte isso usando variáveis de state como alternativa.
12291229

12301230
<Sandpack>
12311231

@@ -1274,7 +1274,7 @@ h1 { margin-top: 10px; }
12741274

12751275
<Solution>
12761276

1277-
Primeiramente, importe `useState` a partir do React. Então substitua `firstName` e `lastName` com variáveis de state declaradas chamando `useState`. Por fim, substitua todas as atribuições `firstName = ...` com `setFirstName(...)`, e faça o mesmo para `lastName`. Não se esqueça de atualizar `handleReset` também para que o botão de redefinição (Reset) funcione.
1277+
Primeiramente, importe `useState` a partir do React. Então substitua `firstName` e `lastName` com variáveis de state declaradas chamando `useState`. Por fim, substitua todas as atribuições `firstName = ...` com `setFirstName(...)`, e faça o mesmo para `lastName`. Não se esqueça de também atualizar `handleReset` para que o botão de redefinição (Reset) funcione.
12781278

12791279
<Sandpack>
12801280

@@ -1331,7 +1331,7 @@ Aqui está um pequeno formulário o qual supostamente deve permitir que o usuár
13311331

13321332
<Hint>
13331333

1334-
Existem quaisquer limitações sobre _onde_ Hooks podem ser chamados? Esse componente quebra alguma das regras? Cheque se existem quaisquer comentários desabilitando checagens do linter--é aqui que bugs geralmente se escondem!
1334+
Existem quaisquer limitações sobre _onde_ Hooks podem ser chamados? Esse componente quebra alguma das regras? Cheque se existem quaisquer comentários desabilitando checagens do *linter*--é aqui que bugs geralmente se escondem!
13351335

13361336
</Hint>
13371337

@@ -1446,13 +1446,13 @@ export default function FeedbackForm() {
14461446

14471447
Tente mover a segunda chamada `useState` depois da condição `if` e note como isto quebra novamente.
14481448

1449-
Se seu linter está [configurado para React](/learn/editor-setup#linting), você deve ver um erro de lint quando faz um erro como esse. Se você não vê um erro quando tenta código falho localmente, você precisa configurar linting para o seu projeto.
1449+
Se seu *linter* está [configurado para React](/learn/editor-setup#linting), você deve ver um erro de *lint* quando faz um erro como esse. Se você não vê um erro quando tenta código falho localmente, você precisa configurar *linting* para o seu projeto.
14501450

14511451
</Solution>
14521452

14531453
#### Remova state desnecessário {/*remove-unnecessary-state*/}
14541454

1455-
Quando o botão é clicado, esse exemplo deve perguntar pelo nome do usuário e então exibir um alerta cumprimentando-o. Você tentou usa state para manter o nome, mas por alguma razão ele sempre mostra "Hello, !".
1455+
Quando o botão é clicado, esse exemplo deve perguntar pelo nome do usuário e então exibir um alerta cumprimentando-o. Você tentou usar state para manter o nome, mas por alguma razão ele sempre mostra "Hello, !".
14561456

14571457
Para consertar esse código, remova a variável de state desnecessária. (Nós discutiremos sobre [por que isso não funcionou](/learn/state-as-a-snapshot) mais tarde.)
14581458

0 commit comments

Comments
 (0)