Skip to content

Commit 5e33c72

Browse files
authored
Merge pull request #233 from fabiodepin/patch-3
Update data-methods.md
2 parents 2abe857 + 9143ae6 commit 5e33c72

File tree

1 file changed

+27
-27
lines changed

1 file changed

+27
-27
lines changed

src/guide/data-methods.md

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
# Data Properties and Methods
1+
# Propriedades de Dados e Métodos
22

33
<VideoLesson href="https://vueschool.io/lessons/methods-in-vue-3?friend=vuejs" title="Aprenda a usar métodos na Vue School">Aprenda a trabalhar com dados e métodos com uma aula gratuita da Vue School</VideoLesson>
44

5-
## Data Properties
5+
## Propriedades de Dados
66

7-
The `data` option for a component is a function. Vue calls this function as part of creating a new component instance. It should return an object, which Vue will then wrap in its reactivity system and store on the component instance as `$data`. For convenience, any top-level properties of that object are also exposed directly via the component instance:
7+
A opção `data` para um componente é uma função. Vue chama essa função como parte da criação de uma nova instância de componente. Ela deve retornar um objeto, que o Vue irá envolver em seu sistema de reatividade e armazenar na instância do componente como `$data`. Por conveniência, quaisquer propriedades de nível superior desse objeto também são expostas diretamente por meio da instância do componente:
88

99
```js
1010
const app = Vue.createApp({
@@ -18,24 +18,24 @@ const vm = app.mount('#app')
1818
console.log(vm.$data.count) // => 4
1919
console.log(vm.count) // => 4
2020

21-
// Assigning a value to vm.count will also update $data.count
21+
// Atribuir um valor a vm.count também atualizará $data.count
2222
vm.count = 5
2323
console.log(vm.$data.count) // => 5
2424

25-
// ... and vice-versa
25+
// ... e vice-versa
2626
vm.$data.count = 6
2727
console.log(vm.count) // => 6
2828
```
2929

30-
These instance properties are only added when the instance is first created, so you need to ensure they are all present in the object returned by the `data` function. Where necessary, use `null`, `undefined` or some other placeholder value for properties where the desired value isn't yet available.
30+
Essas propriedades de instância são adicionadas apenas quando a instância é criada pela primeira vez, então você precisa garantir que todas estejam presentes no objeto retornado pela função `data`. Onde necessário, use `null`, `undefined` ou algum outro valor que reserve o lugar para propriedades onde o valor desejado ainda não está disponível.
3131

32-
It is possible to add a new property directly to the component instance without including it in `data`. However, because this property isn't backed by the reactive `$data` object, it won't automatically be tracked by [Vue's reactivity system](reactivity.html).
32+
É possível adicionar uma nova propriedade diretamente à instância do componente sem incluí-la em `data`. No entanto, como essa propriedade não é suportada pelo objeto reativo `$data`, ela não será rastreada automaticamente pelo [sistema de reatividade do Vue](reactivity.html).
3333

34-
Vue uses a `$` prefix when exposing its own built-in APIs via the component instance. It also reserves the prefix `_` for internal properties. You should avoid using names for top-level `data` properties that start with either of these characters.
34+
O Vue usa o prefixo `$` ao expor suas próprias APIs integradas por meio da instância do componente. Ele também reserva o prefixo `_` para propriedades internas. Você deve evitar usar nomes para propriedades `data` de nível superior que começam com qualquer um desses caracteres.
3535

36-
## Methods
36+
## Métodos
3737

38-
To add methods to a component instance we use the `methods` option. This should be an object containing the desired methods:
38+
Para adicionar métodos a uma instância do componente, usamos a opção `methods`. Isto deve ser um objeto contendo os métodos desejados:
3939

4040
```js
4141
const app = Vue.createApp({
@@ -44,7 +44,7 @@ const app = Vue.createApp({
4444
},
4545
methods: {
4646
increment() {
47-
// `this` will refer to the component instance
47+
// `this` irá se referir à instância do componente
4848
this.count++
4949
}
5050
}
@@ -59,63 +59,63 @@ vm.increment()
5959
console.log(vm.count) // => 5
6060
```
6161

62-
Vue automatically binds the `this` value for `methods` so that it always refers to the component instance. This ensures that a method retains the correct `this` value if it's used as an event listener or callback. You should avoid using arrow functions when defining `methods`, as that prevents Vue from binding the appropriate `this` value.
62+
O Vue vincula automaticamente o valor de `this` nos `methods` para que sempre se refira à instância do componente. Isso garante que um método retenha o valor de `this` correto se for usado como um escutador de evento ou _callback_. Você deve evitar o uso de _arrow functions_ ao definir `methods`, pois isso impede que o Vue vincule o valor de `this` apropriado.
6363

64-
Just like all other properties of the component instance, the `methods` are accessible from within the component's template. Inside a template they are most commonly used as event listeners:
64+
Assim como todas as outras propriedades da instância do componente, os métodos em `methods` são acessíveis a partir do _template_ do componente. Dentro de um _template_, eles são mais comumente usados como escutadores de eventos:
6565

6666
```html
67-
<button @click="increment">Up vote</button>
67+
<button @click="increment">Voto positivo</button>
6868
```
6969

70-
In the example above, the method `increment` will be called when the `<button>` is clicked.
70+
No exemplo acima, o método `increment` será chamado quando o `<button>` for clicado.
7171

72-
It is also possible to call a method directly from a template. As we'll see shortly, it's usually better to use a [computed property](computed.html) instead. However, using a method can be useful in scenarios where computed properties aren't a viable option. You can call a method anywhere that a template supports JavaScript expressions:
72+
Também é possível chamar um método diretamente de um _template_. Como veremos em breve, geralmente é melhor usar um [dado computado](computed.html) em vez disso. No entanto, usar um método pode ser útil em cenários onde os dados computados não são uma opção viável. Você pode chamar um método em qualquer lugar em que um _template_ suporte expressões JavaScript:
7373

7474
```html
7575
<span :title="toTitleDate(date)">
7676
{{ formatDate(date) }}
7777
</span>
7878
```
7979

80-
If the methods `toTitleDate` or `formatDate` access any reactive data then it will be tracked as a rendering dependency, just as if it had been used in the template directly.
80+
Se os métodos `toTitleDate` ou `formatDate` acessarem qualquer dado reativo, ele será rastreado como uma dependência de renderização, como se tivesse sido usado diretamente no template.
8181

82-
Methods called from a template should not have any side effects, such as changing data or triggering asynchronous processes. If you find yourself tempted to do that you should probably use a [lifecycle hook](instance.html#lifecycle-hooks) instead.
82+
Os métodos chamados a partir de um _template_ não devem ter efeitos colaterais, como alteração de dados ou acionamento de processos assíncronos. Se você se sentir tentado a fazer isso, provavelmente deve usar um [gatilho de ciclo de vida](instance.html#gatilhos-de-ciclo-de-vida).
8383

84-
### Debouncing and Throttling
84+
### _Debouncing_ e _Throttling_
8585

86-
Vue doesn't include built-in support for debouncing or throttling but it can be implemented using libraries such as [Lodash](https://lodash.com/).
86+
O Vue não inclui suporte integrado para _debouncing_ ou _throttling_, mas pode ser implementado usando bibliotecas como [Lodash](https://lodash.com/).
8787

88-
In cases where a component is only used once, the debouncing can be applied directly within `methods`:
88+
Nos casos em que um componente é usado apenas uma vez, o _debouncing_ pode ser aplicado diretamente em `methods`:
8989

9090
```html
9191
<script src="https://unpkg.com/[email protected]/lodash.min.js"></script>
9292
<script>
9393
Vue.createApp({
9494
methods: {
95-
// Debouncing with Lodash
95+
// Debouncing com Lodash
9696
click: _.debounce(function() {
97-
// ... respond to click ...
97+
// ... responder ao clique ...
9898
}, 500)
9999
}
100100
}).mount('#app')
101101
</script>
102102
```
103103

104-
However, this approach is potentially problematic for components that are reused because they'll all share the same debounced function. To keep the component instances independent from each other, we can add the debounced function in the `created` lifecycle hook:
104+
No entanto, essa abordagem é potencialmente problemática para componentes que são reutilizados, porque todos eles compartilharão a mesma função _debounced_. Para manter as instâncias do componente independentes umas das outras, podemos adicionar a função _debounced_ no gatilho do ciclo de vida `created`:
105105

106106
```js
107107
app.component('save-button', {
108108
created() {
109-
// Debouncing with Lodash
109+
// Debouncing com Lodash
110110
this.debouncedClick = _.debounce(this.click, 500)
111111
},
112112
unmounted() {
113-
// Cancel the timer when the component is removed
113+
// Cancela o cronômetro quando o componente é removido
114114
this.debouncedClick.cancel()
115115
},
116116
methods: {
117117
click() {
118-
// ... respond to click ...
118+
// ... responder ao clique ...
119119
}
120120
},
121121
template: `

0 commit comments

Comments
 (0)