Skip to content

Commit 18e42f7

Browse files
Translate javascript-in-jsx-with-curly-braces.md (#674)
* first pass • deveria ser chamado "string" ou "cadeia de caracteres" ? • deveria ser chamado "chaves duplas" or something more fun like "double curlies" was ? * improve word choice • replace uses of "marca" with "tag" (#657 (comment)) * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> * translate title * Update src/content/learn/javascript-in-jsx-with-curly-braces.md Co-authored-by: Tarcísio Surdi <[email protected]> --------- Co-authored-by: Tarcísio Surdi <[email protected]>
1 parent ce3a081 commit 18e42f7

File tree

1 file changed

+56
-56
lines changed

1 file changed

+56
-56
lines changed

src/content/learn/javascript-in-jsx-with-curly-braces.md

+56-56
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
---
2-
title: JavaScript in JSX with Curly Braces
2+
title: JavaScript em JSX com chaves
33
---
44

55
<Intro>
66

7-
JSX lets you write HTML-like markup inside a JavaScript file, keeping rendering logic and content in the same place. Sometimes you will want to add a little JavaScript logic or reference a dynamic property inside that markup. In this situation, you can use curly braces in your JSX to open a window to JavaScript.
7+
A sintaxe JSX permite que você escreva tags similares ao HTML dentro de um arquivo JavaScript, mantendo a lógica de renderização e o conteúdo no mesmo local. Às vezes, você pode querer adicionar um pouco de lógica JavaScript ou referenciar uma propriedade dinâmica dentro deste bloco de tags. Nessa situação, você pode usar chaves em seu JSX para abrir uma janela para o JavaScript.
88

99
</Intro>
1010

1111
<YouWillLearn>
1212

13-
* How to pass strings with quotes
14-
* How to reference a JavaScript variable inside JSX with curly braces
15-
* How to call a JavaScript function inside JSX with curly braces
16-
* How to use a JavaScript object inside JSX with curly braces
13+
* Como passar strings com aspas
14+
* Como fazer referência a uma variável JavaScript dentro do JSX usando chaves
15+
* Como chamar uma função JavaScript dentro da JSX com chaves
16+
* Como usar um objeto JavaScript dentro da JSX com chaves
1717

1818
</YouWillLearn>
1919

20-
## Passing strings with quotes {/*passing-strings-with-quotes*/}
20+
## Passando strings com aspas {/*passing-strings-with-quotes*/}
2121

22-
When you want to pass a string attribute to JSX, you put it in single or double quotes:
22+
Quando você quiser passar um atributo de string para a JSX, coloque-o entre aspas simples ou duplas:
2323

2424
<Sandpack>
2525

@@ -41,9 +41,9 @@ export default function Avatar() {
4141

4242
</Sandpack>
4343

44-
Here, `"https://i.imgur.com/7vQD0fPs.jpg"` and `"Gregorio Y. Zara"` are being passed as strings.
44+
Neste caso, `"https://i.imgur.com/7vQD0fPs.jpg"` e `"Gregorio Y. Zara"` estão sendo passados como strings.
4545

46-
But what if you want to dynamically specify the `src` or `alt` text? You could **use a value from JavaScript by replacing `"` and `"` with `{` and `}`**:
46+
Mas e se você quiser especificar dinamicamente o atributo `src` ou `alt`? Você poderia **usar um valor do JavaScript substituindo `"` e `"` por `{` e `}`**:
4747

4848
<Sandpack>
4949

@@ -67,11 +67,11 @@ export default function Avatar() {
6767

6868
</Sandpack>
6969

70-
Notice the difference between `className="avatar"`, which specifies an `"avatar"` CSS class name that makes the image round, and `src={avatar}` that reads the value of the JavaScript variable called `avatar`. That's because curly braces let you work with JavaScript right there in your markup!
70+
Perceba a diferença entre `className="avatar"`, que especifica um nome de classe CSS `"avatar"` para tornar a imagem redonda, e `src={avatar}`, que lê o valor da variável JavaScript chamada `avatar`. Isso ocorre porque as chaves permitem que você trabalhe com JavaScript diretamente em seu bloco de tags!
7171

72-
## Using curly braces: A window into the JavaScript world {/*using-curly-braces-a-window-into-the-javascript-world*/}
72+
## Usando chaves: Uma janela para o mundo do JavaScript {/*using-curly-braces-a-window-into-the-javascript-world*/}
7373

74-
JSX is a special way of writing JavaScript. That means it’s possible to use JavaScript inside it—with curly braces `{ }`. The example below first declares a name for the scientist, `name`, then embeds it with curly braces inside the `<h1>`:
74+
JSX é uma forma especial de escrever JavaScript. Isso significa que é possível usar JavaScript dentro dela - com chaves `{ }`. O exemplo abaixo primeiro declara um nome para o cientista, `name`, e depois o insere o dentro do `<h1>` com chaves:
7575

7676
<Sandpack>
7777

@@ -86,9 +86,9 @@ export default function TodoList() {
8686
8787
</Sandpack>
8888
89-
Try changing the `name`'s value from `'Gregorio Y. Zara'` to `'Hedy Lamarr'`. See how the list title changes?
89+
Tente trocar o valor do `name` de `'Gregorio Y. Zara'` para `'Hedy Lamarr'`. Está vendo como o título da lista muda?
9090
91-
Any JavaScript expression will work between curly braces, including function calls like `formatDate()`:
91+
Qualquer expressão JavaScript funcionará entre chaves, incluindo chamadas de função como `formatDate()`:
9292
9393
<Sandpack>
9494
@@ -111,18 +111,18 @@ export default function TodoList() {
111111
112112
</Sandpack>
113113
114-
### Where to use curly braces {/*where-to-use-curly-braces*/}
114+
### Onde usar chaves {/*where-to-use-curly-braces*/}
115115
116-
You can only use curly braces in two ways inside JSX:
116+
Você só pode usar chaves de duas maneiras dentro da JSX:
117117
118-
1. **As text** directly inside a JSX tag: `<h1>{name}'s To Do List</h1>` works, but `<{tag}>Gregorio Y. Zara's To Do List</{tag}>` will not.
119-
2. **As attributes** immediately following the `=` sign: `src={avatar}` will read the `avatar` variable, but `src="{avatar}"` will pass the string `"{avatar}"`.
118+
1. **Como texto** diretamente dentro de uma tag JSX: `<h1>{nome}'s To Do List</h1>` funciona, porém `<{tag}>Gregorio Y. Zara's To Do List</{tag}>` não funcionará.
119+
2. **Como atributos** imediatamente após o sinal `=`: `src={avatar}` lerá a variável `avatar`, mas `src="{avatar}"` passará a string `"{avatar}"`.
120120
121-
## Using "double curlies": CSS and other objects in JSX {/*using-double-curlies-css-and-other-objects-in-jsx*/}
121+
## Uso de "chaves duplas": CSS e outros objetos em JSX {/*using-double-curlies-css-and-other-objects-in-jsx*/}
122122
123-
In addition to strings, numbers, and other JavaScript expressions, you can even pass objects in JSX. Objects are also denoted with curly braces, like `{ name: "Hedy Lamarr", inventions: 5 }`. Therefore, to pass a JS object in JSX, you must wrap the object in another pair of curly braces: `person={{ name: "Hedy Lamarr", inventions: 5 }}`.
123+
Além de strings, números e outras expressões JavaScript, você pode até passar objetos em JSX. Os objetos também são denotados por chaves, como `{ name: "Hedy Lamarr", inventions: 5 }`. Portanto, para passar um objeto JS em JSX, você deve envolver o objeto em outro par de chaves: `person={{ name: "Hedy Lamarr", inventions: 5 }}`.
124124
125-
You may see this with inline CSS styles in JSX. React does not require you to use inline styles (CSS classes work great for most cases). But when you need an inline style, you pass an object to the `style` attribute:
125+
Você pode ver isso com estilos CSS em linha na JSX. O React não exige que você use estilos inline (as classes CSS funcionam muito bem na maioria dos casos). Mas quando você precisa de um estilo inline, você passa um objeto para o atributo `style`:
126126
127127
<Sandpack>
128128
@@ -148,9 +148,9 @@ ul { padding: 20px 20px 20px 40px; margin: 0; }
148148
149149
</Sandpack>
150150
151-
Try changing the values of `backgroundColor` and `color`.
151+
Tente alterar os valores de `backgroundColor` e `color`.
152152
153-
You can really see the JavaScript object inside the curly braces when you write it like this:
153+
Você pode ver claramente o objeto JavaScript dentro das chaves quando o escreve dessa forma:
154154
155155
```js {2-5}
156156
<ul style={
@@ -161,17 +161,17 @@ You can really see the JavaScript object inside the curly braces when you write
161161
}>
162162
```
163163
164-
The next time you see `{{` and `}}` in JSX, know that it's nothing more than an object inside the JSX curlies!
164+
Da próxima vez que você encontrar `{{` e `}}` em JSX, saiba que isso é nada mais do que um objeto dentro das chaves da JSX!
165165
166166
<Pitfall>
167167
168-
Inline `style` properties are written in camelCase. For example, HTML `<ul style="background-color: black"`> would be written as `<ul style={{ backgroundColor: 'black' }}>` in your component.
168+
As propriedades de `style` em linha são escritas em camelCase. Por exemplo, o HTML `<ul style="background-color: black"`> seria escrito como `<ul style={{ backgroundColor: 'black' }}>` em seu componente.
169169
170170
</Pitfall>
171171
172-
## More fun with JavaScript objects and curly braces {/*more-fun-with-javascript-objects-and-curly-braces*/}
172+
## Mais diversão com objetos JavaScript e chaves {/*more-fun-with-javascript-objects-and-curly-braces*/}
173173
174-
You can move several expressions into one object, and reference them in your JSX inside curly braces:
174+
Você pode colocar várias expressões dentro de um objeto e referenciá-las em seu JSX dentro de chaves:
175175
176176
<Sandpack>
177177
@@ -211,7 +211,7 @@ body > div > div { padding: 20px; }
211211

212212
</Sandpack>
213213

214-
In this example, the `person` JavaScript object contains a `name` string and a `theme` object:
214+
Neste exemplo, o objeto JavaScript `person` contém uma string `name` e um objeto `theme`:
215215

216216
```js
217217
const person = {
@@ -223,31 +223,31 @@ const person = {
223223
};
224224
```
225225

226-
The component can use these values from `person` like so:
226+
O componente pode usar os valores de `person` da seguinte forma:
227227

228228
```js
229229
<div style={person.theme}>
230230
<h1>{person.name}'s Todos</h1>
231231
```
232232
233-
JSX is very minimal as a templating language because it lets you organize data and logic using JavaScript.
233+
JSX é uma linguagem de modelação mínima, pois permite que você organize dados e lógica usando JavaScript.
234234
235235
<Recap>
236236
237-
Now you know almost everything about JSX:
237+
Agora você sabe quase tudo sobre JSX:
238238
239-
* JSX attributes inside quotes are passed as strings.
240-
* Curly braces let you bring JavaScript logic and variables into your markup.
241-
* They work inside the JSX tag content or immediately after `=` in attributes.
242-
* `{{` and `}}` is not special syntax: it's a JavaScript object tucked inside JSX curly braces.
239+
* Os atributos JSX entre aspas são passados como strings.
240+
* As chaves permitem que você inclua a lógica e as variáveis do JavaScript em seu bloco de tags.
241+
* Elas funcionam dentro do conteúdo da tag JSX ou imediatamente após `=` em atributos.
242+
* `{{` e `}}` não é uma sintaxe especial: é um objeto JavaScript colocado entre chaves JSX.
243243
244244
</Recap>
245245
246246
<Challenges>
247247
248-
#### Fix the mistake {/*fix-the-mistake*/}
248+
#### Corrija o erro {/*fix-the-mistake*/}
249249
250-
This code crashes with an error saying `Objects are not valid as a React child`:
250+
Este código é interrompido com um erro dizendo `Objetos não são válidos como um filho React`:
251251
252252
<Sandpack>
253253
@@ -287,15 +287,15 @@ body > div > div { padding: 20px; }
287287

288288
</Sandpack>
289289

290-
Can you find the problem?
290+
Você consegue identificar o problema?
291291

292-
<Hint>Look for what's inside the curly braces. Are we putting the right thing there?</Hint>
292+
<Hint>Observe o que está dentro das chaves. Estamos colocando a coisa certa lá?</Hint>
293293

294294
<Solution>
295295

296-
This is happening because this example renders *an object itself* into the markup rather than a string: `<h1>{person}'s Todos</h1>` is trying to render the entire `person` object! Including raw objects as text content throws an error because React doesn't know how you want to display them.
296+
Isso está acontecendo porque esse exemplo renderiza *um objeto* no bloco de tags em vez de uma string: `<h1>{person}'s Todos</h1>` está tentando renderizar o objeto `person` inteiro! A inclusão de objetos diretamente como conteúdo de texto gera um erro porque o React não sabe como você deseja exibi-los.
297297

298-
To fix it, replace `<h1>{person}'s Todos</h1>` with `<h1>{person.name}'s Todos</h1>`:
298+
Para corrigi-lo, substitua `<h1>{person}'s Todos</h1>` por `<h1>{person.name}'s Todos</h1>`:
299299

300300
<Sandpack>
301301

@@ -337,9 +337,9 @@ body > div > div { padding: 20px; }
337337
338338
</Solution>
339339
340-
#### Extract information into an object {/*extract-information-into-an-object*/}
340+
#### Extraia informações para um objeto {/*extract-information-into-an-object*/}
341341
342-
Extract the image URL into the `person` object.
342+
Extraia o URL da imagem para o objeto `person`.
343343
344344
<Sandpack>
345345
@@ -381,7 +381,7 @@ body > div > div { padding: 20px; }
381381

382382
<Solution>
383383

384-
Move the image URL into a property called `person.imageUrl` and read it from the `<img>` tag using the curlies:
384+
Mova o URL da imagem para uma propriedade chamada `person.imageUrl` e leia-o a partir da tag `<img>` usando chaves:
385385

386386
<Sandpack>
387387

@@ -424,13 +424,13 @@ body > div > div { padding: 20px; }
424424
425425
</Solution>
426426
427-
#### Write an expression inside JSX curly braces {/*write-an-expression-inside-jsx-curly-braces*/}
427+
#### Escreva uma expressão entre chaves JSX {/*write-an-expression-inside-jsx-curly-braces*/}
428428
429-
In the object below, the full image URL is split into four parts: base URL, `imageId`, `imageSize`, and file extension.
429+
No objeto abaixo, o URL completo da imagem é dividido em quatro partes: URL base, `imageId`, `imageSize` e extensão do arquivo.
430430
431-
We want the image URL to combine these attributes together: base URL (always `'https://i.imgur.com/'`), `imageId` (`'7vQD0fP'`), `imageSize` (`'s'`), and file extension (always `'.jpg'`). However, something is wrong with how the `<img>` tag specifies its `src`.
431+
Queremos que o URL da imagem combine estes atributos: URL base (sempre `'https://i.imgur.com/'`), `imageId` (`'7vQD0fP'`), `imageSize` (`'s'`) e extensão de arquivo (sempre `'.jpg'`). Entretanto, há algo errado com a forma como a tag `<img>` especifica sua `src`.
432432

433-
Can you fix it?
433+
Você pode consertá-lo?
434434

435435
<Sandpack>
436436

@@ -474,15 +474,15 @@ body > div > div { padding: 20px; }
474474

475475
</Sandpack>
476476

477-
To check that your fix worked, try changing the value of `imageSize` to `'b'`. The image should resize after your edit.
477+
Para verificar se sua correção funcionou, tente alterar o valor de `imageSize` para `'b'`. A imagem deverá ser redimensionada após sua edição.
478478

479479
<Solution>
480480

481-
You can write it as `src={baseUrl + person.imageId + person.imageSize + '.jpg'}`.
481+
Você pode escrevê-lo como `src={baseUrl + person.imageId + person.imageSize + '.jpg'}`.
482482

483-
1. `{` opens the JavaScript expression
484-
2. `baseUrl + person.imageId + person.imageSize + '.jpg'` produces the correct URL string
485-
3. `}` closes the JavaScript expression
483+
1. `{` abre a expressão JavaScript
484+
2. `baseUrl + person.imageId + person.imageSize + '.jpg'` produz a string de URL correta
485+
3. `}` fecha a expressão JavaScript
486486

487487
<Sandpack>
488488

@@ -525,7 +525,7 @@ body > div > div { padding: 20px; }
525525

526526
</Sandpack>
527527

528-
You can also move this expression into a separate function like `getImageUrl` below:
528+
Você também pode mover essa expressão para uma função separada, como `getImageUrl` abaixo:
529529

530530
<Sandpack>
531531

@@ -580,7 +580,7 @@ body > div > div { padding: 20px; }
580580

581581
</Sandpack>
582582

583-
Variables and functions can help you keep the markup simple!
583+
Variáveis e funções podem ajudá-lo a manter o bloco de tags simples!
584584

585585
</Solution>
586586

0 commit comments

Comments
 (0)