Skip to content

Commit cd4fab8

Browse files
authored
Review on guide/component-slots
1 parent 725eafc commit cd4fab8

File tree

1 file changed

+17
-18
lines changed

1 file changed

+17
-18
lines changed

src/guide/component-slots.md

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# _Slots_
22

3-
> Esta página pressupõe que você já leu o [Básico sobre Componentes](component-basics.md). Se você não está familizariado com componentes, recomendamos lê-lo primeiro.
3+
> Esta página assume que você já leu o [Básico sobre Componentes](component-basics.md). Se você não está familizariado com componentes, recomendamos lê-lo primeiro.
44
55
## Conteúdo do _Slot_
66

7-
Vue implementa uma API de distribuição de conteúdo inspirada em [um dos rascunhos de especificação de _Web Components_](https://github.com/w3c/webcomponents/blob/gh-pages/proposals/Slots-Proposal.md), utilizando o elemento `<slot>` como saída de distribuição de conteúdo.
7+
Vue implementa uma API de distribuição de conteúdo inspirada no [rascunho da especificação de _Web Components_](https://github.com/w3c/webcomponents/blob/gh-pages/proposals/Slots-Proposal.md), utilizando o elemento `<slot>` como saída de distribuição de conteúdo.
88

99
Isto permite a criação de componentes como o seguinte exemplo:
1010

@@ -32,7 +32,7 @@ Quando o componente renderizar, `<slot></slot>` será substituído por "Adiciona
3232
</button>
3333
```
3434

35-
_Strings_ são apenas um exemplo simples! _Slots_ podem servir vários tipos de conteúdo também, incluindo HTML:
35+
_Strings_ são apenas um exemplo simples! _Slots_ podem conter código de _template_ também, incluindo HTML:
3636

3737
```html
3838
<todo-button>
@@ -68,7 +68,7 @@ Se o _template_ de `<todo-button>` **não** possuísse o elemento `<slot>`, qual
6868
</todo-button>
6969
```
7070

71-
## Escopo de Compilação
71+
## Escopo da Renderização
7272

7373
Quando você desejar utilizar dados dentro de um _slot_, como em:
7474

@@ -78,11 +78,11 @@ Quando você desejar utilizar dados dentro de um _slot_, como em:
7878
</todo-button>
7979
```
8080

81-
Este _slot_ possui acesso às propriedades de sua instância (isto é, ao "escopo" de sua instância), assim como o resto do _template_.
81+
Este _slot_ possui acesso às propriedades da mesma instância (isto é, mesmo "escopo"), que o resto do _template_.
8282

83-
<img src="/images/slot.png" width="447" height="auto" style="display: block; margin: 0 auto; max-width: 100%" loading="lazy" alt="Diagrama para explicar o Escopo de Compilação">
83+
<img src="/images/slot.png" width="447" height="auto" style="display: block; margin: 0 auto; max-width: 100%" loading="lazy" alt="Diagrama para explicar o Escopo da Renderização">
8484

85-
Entretanto, o _slot_ *não* possui acesso ao escopo de `<todo-button>`. Por exemplo, se tentarmos adquirir o valor de `action`, não será possível:
85+
O _slot_ *não* possui acesso ao escopo de `<todo-button>`. Por exemplo, se tentarmos adquirir o valor de `action`, não será possível:
8686

8787
```html
8888
<todo-button action="delete">
@@ -99,8 +99,7 @@ Lembre-se, como regra, de que:
9999

100100
> Tudo do _template_ pai _(parent template)_ é compilado no escopo pai _(parent scope)_; tudo do _template_ filho _(child template)_, é compilado no escopo filho _(child scope)_.
101101
102-
## Conteúdo padrão
103-
102+
## Conteúdo Padrão
104103

105104
Há certos casos onde é interessante definir um conteúdo padrão (ou de _fallback_) para um _slot_ — ou seja, conteúdo que será apenas renderizado caso nenhum outro for informado. Por exemplo, no componente `<submit-button>`:
106105

@@ -118,7 +117,7 @@ Podemos querer mostrar "Enviar" dentro do `<button>` quando nenhum outro texto f
118117
</button>
119118
```
120119

121-
Agora, ao utilizarmos o componente `<submit-button>`, sem informar um conteúdo...
120+
Agora, ao utilizarmos o componente `<submit-button>`, sem prover um conteúdo:
122121

123122
```html
124123
<submit-button></submit-button>
@@ -132,7 +131,7 @@ Agora, ao utilizarmos o componente `<submit-button>`, sem informar um conteúdo.
132131
</button>
133132
```
134133

135-
Entretanto, se especificarmos um conteúdo...
134+
Entretanto, se especificarmos um conteúdo:
136135

137136
```html
138137
<submit-button>
@@ -148,7 +147,7 @@ O conteúdo informado que será renderizado no lugar de "Enviar":
148147
</button>
149148
```
150149

151-
## _Slots_ nomeados
150+
## _Slots_ Nomeados
152151

153152
Há casos onde é interessante utilizar vários slots. Por exemplo, em um componente `<base-layout>`, com o seguinte _template_:
154153

@@ -222,11 +221,11 @@ O HTML renderizado será:
222221
</div>
223222
```
224223

225-
É importante destacar que **`v-slot` pode ser adicionado apenas a um `<template>`** ([exceto neste caso](#sintaxe-abreviada-para-slot-unico-e-default)).
224+
É importante destacar que **`v-slot` pode ser adicionado apenas à um `<template>`** ([exceto neste caso](#sintaxe-abreviada-para-slot-unico-e-default)).
226225

227226
## Definição de Escopo em _Slots_
228227

229-
Em certos momentos, é interessante acessar dados apenas disponíveis no componente filho _(child component)_ no conteúdo de um _slot_. Um caso muito comum é quando utilizamos um componente específico para renderizarmos cada item de um vetor _(array)_ ou, simplesmente, para personalizarmos como cada item é renderizado.
228+
Em certos momentos, é interessante acessar dados apenas disponíveis no componente filho _(child component)_ no conteúdo de um _slot_. Um caso comum é utilizarmos um componente para renderizarmos itens de um Array, e queremos o poder de personalizar como cada item é renderizado.
230229

231230
Por exemplo, em um componente que possui uma lista de afazeres:
232231

@@ -268,7 +267,7 @@ Para fazer com que `item` esteja disponível para uso no conteúdo do _slot_ def
268267
</ul>
269268
```
270269

271-
Atributos passados para um elemento `<slot>` são chamados de **_props_ do _slot_** _(slot props)_. Agora, no escopo do componente pai _(parent scope)_, podemos utilizar `v-slot` com um valor, que será utilizado, neste caso, como o nome de acesso a estes _props_ do _slot_:
270+
Atributos passados para um elemento `<slot>` são chamados de **_props_ do _slot_** _(slot props)_. Agora, no escopo do componente pai _(parent scope)_, podemos utilizar `v-slot` com um valor, que será utilizado, neste caso, como o nome de acesso à estes _props_ do _slot_:
272271

273272
```html
274273
<todo-list>
@@ -333,7 +332,7 @@ Sempre que houver mais de um _slot_, utilize da sintaxe completa, com `<template
333332
</current-user>
334333
```
335334

336-
### Desestruturando _Props_ em um _Slot_
335+
### Desestruturando _Props_ do _Slot_
337336

338337
Internamente, _slots_ com escopo definido encapsulam o conteúdo do seu respectivo _slot_ em uma função com um único argumento:
339338

@@ -343,7 +342,7 @@ function (slotProps) {
343342
}
344343
```
345344

346-
Isto significa que o valor passado a `v-slot` pode aceitar, na verdade, qualquer expressão JavaScript válida de definição de argumentos de uma função. Portanto, você também pode utilizar a [desestruturação de objetos, da ES2015](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Object_destructuring), a fim de trabalhar apenas com os _props_ que você desejar no conteúdo do _slot_, como no exemplo abaixo:
345+
Isto significa que o valor passado à `v-slot` pode aceitar, na verdade, qualquer expressão JavaScript válida na definição de argumentos de uma função. Portanto, você também pode utilizar a [desestruturação de objetos, da ES2015](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#Object_destructuring), a fim de trabalhar apenas com os _props_ que você desejar no conteúdo do _slot_, como no exemplo abaixo:
347346

348347
```html
349348
<todo-list v-slot="{ item }">
@@ -364,7 +363,7 @@ Isto pode tornar o _template_ muito mais limpo, especialmente quando o _slot_ fo
364363
Você pode até definir valores padrão _(fallbacks)_, a fim de serem utilizados quando um _prop_ do _slot_ não possuir um valor definido _(undefined)_:
365364

366365
```html
367-
<todo-list v-slot="{ item = 'Isto é um afazer' }">
366+
<todo-list v-slot="{ item = 'Isto é um afazer placeholder' }">
368367
<i class="fas fa-check"></i>
369368
<span class="green">{{ item }}</span>
370369
</todo-list>

0 commit comments

Comments
 (0)