Skip to content

Commit b5e5fc6

Browse files
authored
Update instance.md
1 parent 2493b8a commit b5e5fc6

File tree

1 file changed

+82
-78
lines changed

1 file changed

+82
-78
lines changed

src/guide/instance.md

Lines changed: 82 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -1,151 +1,155 @@
1-
# The Application Instance
1+
---
2+
title: A Instância Vue
3+
type: guide
4+
order: 3
5+
---
26

3-
## Creating an Instance
7+
## Criando a Instância Vue
48

5-
Every Vue application starts by creating a new **application instance** with the `createApp` function:
9+
Toda aplicação Vue é iniciada com a criação de uma nova **instância Vue** com a função `Vue`:
610

711
```js
8-
Vue.createApp(/* options */)
9-
```
10-
11-
After the instance is created, we can _mount_ it, passing a container to `mount` method. For example, if we want to mount a Vue application on `<div id="app"></div>`, we should pass `#app`:
12-
13-
```js
14-
Vue.createApp(/* options */).mount('#app')
12+
var vm = new Vue({
13+
// opções
14+
})
1515
```
1616

17-
Although not strictly associated with the [MVVM pattern](https://en.wikipedia.org/wiki/Model_View_ViewModel), Vue's design was partly inspired by it. As a convention, we often use the variable `vm` (short for ViewModel) to refer to our instance.
17+
Embora não seja estritamente associado com o [padrão MVVM](https://en.wikipedia.org/wiki/Model_View_ViewModel), o _design_ do Vue foi parcialmente inspirado por ele. Como convenção, muitas vezes usamos a variável `vm` (abreviação de _ViewModel_) para se referir à instância Vue.
1818

19-
When you create an instance, you pass in an **options object**. The majority of this guide describes how you can use these options to create your desired behavior. For reference, you can also browse the full list of options in the [API reference](../api/options-data.html).
19+
Quando você cria uma instância Vue, é necessário passar um **objeto de opções**. A maior parte deste guia descreve como você pode utilizar estas opções para criar os comportamentos desejados. Para referência, você também pode navegar pela lista completa de opções na [documentação da API](../api/#Opcoes-Dados).
2020

21-
A Vue application consists of a **root instance** created with `createApp`, optionally organized into a tree of nested, reusable components. For example, a `todo` app's component tree might look like this:
21+
Uma aplicação Vue consiste em uma **instância Vue raiz** criada com `new Vue`, opcionalmente organizada em uma árvore de componentes reutilizáveis aninhados. Por exemplo, um aplicativo de tarefas a realizar (do tipo _todo list_) poderia ter uma árvore de componentes como esta:
2222

2323
```
24-
Root Instance
24+
Instância Raiz
2525
└─ TodoList
2626
├─ TodoItem
27-
│ ├─ DeleteTodoButton
28-
│ └─ EditTodoButton
27+
│ ├─ TodoButtonDelete
28+
│ └─ TodoButtonEdit
2929
└─ TodoListFooter
30-
├─ ClearTodosButton
30+
├─ TodosButtonClear
3131
└─ TodoListStatistics
3232
```
3333

34-
We'll talk about [the component system](component-basics.html) in detail later. For now, just know that all Vue components are also instances, and so accept the same options object.
34+
Falaremos sobre o [sistema de componentes](components.html) em detalhes futuramente. Por enquanto, saiba apenas que todos os componentes Vue também são instâncias, e aceitam o mesmo esquema de opções (exceto por algumas poucas opções específicas da raiz).
3535

36-
## Data and Methods
36+
## Dados e Métodos
3737

38-
When an instance is created, it adds all the properties found in its `data` to [Vue's **reactivity system**](reactivity.html). When the values of those properties change, the view will "react", updating to match the new values.
38+
Quando uma instância Vue é criada, ela adiciona todas as propriedades encontradas no objeto `data` ao **sistema de reatividade** do Vue. Quando os valores de qualquer destas propriedades muda, a camada visual (em inglês, _view_) "reage", atualizando-se para condizer com os novos valores.
3939

4040
```js
41-
// Our data object
42-
const data = { a: 1 }
41+
// Nosso objeto de dados
42+
var data = { a: 1 }
4343

44-
// The object is added to the root instance
45-
const vm = Vue.createApp({
46-
data() {
47-
return data
48-
}
49-
}).mount('#app')
44+
// O objeto é adicionado à instância Vue
45+
var vm = new Vue({
46+
data: data
47+
})
5048

51-
// Getting the property on the instance
52-
// returns the one from the original data
49+
// Acessar a propriedade na instância
50+
// retorna aquilo que está no dado original
51+
// ou seja, é uma referência ao mesmo objeto!
5352
vm.a === data.a // => true
5453

55-
// Setting the property on the instance
56-
// also affects the original data
54+
// Atribuir à propriedade na instância
55+
// também afeta o dado original
5756
vm.a = 2
5857
data.a // => 2
58+
59+
// ... e vice-versa
60+
data.a = 3
61+
vm.a // => 3
5962
```
6063

61-
When this data changes, the view will re-render. It should be noted that properties in `data` are only **reactive** if they existed when the instance was created. That means if you add a new property, like:
64+
Quando este dado for modificado, a camada visual irá "re-renderizar". Deve-se observar que as propriedades em `data` só são **reativas** se elas já existiam quando a instância foi criada. Isso significa que se você adicionar uma nova propriedade, como:
6265

6366
```js
6467
vm.b = 'hi'
6568
```
6669

67-
Then changes to `b` will not trigger any view updates. If you know you'll need a property later, but it starts out empty or non-existent, you'll need to set some initial value. For example:
70+
Então as mudanças em `b` não irão disparar qualquer atualização na interface. Se você sabe que precisará de uma propriedade no futuro, mas ela inicia vazia ou não existente, precisará especificar algum valor inicial. Por exemplo:
6871

6972
```js
70-
data() {
71-
return {
72-
newTodoText: '',
73-
visitCount: 0,
74-
hideCompletedTodos: false,
75-
todos: [],
76-
error: null
77-
}
73+
data: {
74+
newTodoText: '',
75+
visitCount: 0,
76+
hideCompletedTodos: false,
77+
todos: [],
78+
error: null
7879
}
7980
```
8081

81-
The only exception to this being the use of `Object.freeze()`, which prevents existing properties from being changed, which also means the reactivity system can't _track_ changes.
82+
A única exceção é ao usar `Object.freeze()`, que previne propriedades existentes de serem modificadas. Também significa que o sistema de reatividade não pode _rastrear_ mudanças.
8283

8384
```js
84-
const obj = {
85+
var obj = {
8586
foo: 'bar'
8687
}
8788

8889
Object.freeze(obj)
8990

90-
const vm = Vue.createApp({
91-
data() {
92-
return obj
93-
}
94-
}).mount('#app')
91+
new Vue({
92+
el: '#app',
93+
data: obj
94+
})
9595
```
9696

9797
```html
9898
<div id="app">
9999
<p>{{ foo }}</p>
100-
<!-- this will no longer update `foo`! -->
100+
<!-- não irá atualizar mais o `foo`! -->
101101
<button v-on:click="foo = 'baz'">Change it</button>
102102
</div>
103103
```
104104

105-
In addition to data properties, instances expose a number of useful instance properties and methods. These are prefixed with `$` to differentiate them from user-defined properties. For example:
105+
Em adição às propriedades de dados, instâncias Vue expõem uma quantidade relevante de propriedades e métodos. Estes são prefixados com `$` para diferenciá-los das propriedades definidas pelo usuário. Por exemplo:
106106

107107
```js
108-
const vm = Vue.createApp({
109-
data() {
110-
return {
111-
a: 1
112-
}
113-
}
114-
}).mount('#example')
108+
var data = { a: 1 }
109+
var vm = new Vue({
110+
el: '#exemplo',
111+
data: data
112+
})
113+
114+
vm.$data === data // => true
115+
vm.$el === document.getElementById('exemplo') // => true
115116

116-
vm.$data.a // => 1
117+
// $watch é um método da instância
118+
vm.$watch('a', function (newValue, oldValue) {
119+
// Esta função será executada quando `vm.a` mudar
120+
})
117121
```
118122

119-
In the future, you can consult the [API reference](../api/instance-properties.html) for a full list of instance properties and methods.
123+
No futuro, você pode consultar a [documentação da API](../api/#Propriedades-de-Instancia) para a lista completa de propriedades e métodos da instância.
124+
125+
## Ciclo de Vida da Instância
120126

121-
## Instance Lifecycle Hooks
127+
<div class="vueschool"><a href="https://vueschool.io/lessons/understanding-the-vuejs-lifecycle-hooks?friend=vuejs" target="_blank" rel="sponsored noopener" title="Lição gratuita sobre Gatilhos do Ciclo de Vida do Vue.js">Assista a uma lição em vídeo gratuita na Vue School</a></div>
122128

123-
Each instance goes through a series of initialization steps when it's created - for example, it needs to set up data observation, compile the template, mount the instance to the DOM, and update the DOM when data changes. Along the way, it also runs functions called **lifecycle hooks**, giving users the opportunity to add their own code at specific stages.
129+
Cada instância Vue passa por uma série de etapas em sua inicialização - por exemplo, é necessário configurar a observação de dados, compilar o _template_, montar a instância no DOM, e atualizar o DOM quando os dados forem alterados. Ao longo do caminho, também ocorre a invocação de agumas funções chamadas de **gatilhos de ciclo de vida** (em inglês, _lifecycle hooks_), oferecendo a oportunidade de executar lógicas personalizadas em etapas específicas.
124130

125-
For example, the [created](../api/options-lifecycle-hooks.html#created) hook can be used to run code after an instance is created:
131+
Por exemplo, o gatilho [`created`](../api/#created) pode ser utilizado para executar código logo após a instância ser criada:
126132

127133
```js
128-
Vue.createApp({
129-
data() {
130-
return {
131-
a: 1
132-
}
134+
new Vue({
135+
data: {
136+
a: 1
133137
},
134-
created() {
135-
// `this` points to the vm instance
136-
console.log('a is: ' + this.a) // => "a is: 1"
138+
created: function () {
139+
// `this` aponta para a instância
140+
console.log('a é: ' + this.a)
137141
}
138142
})
143+
// => "a é: 1"
139144
```
140145

141-
There are also other hooks which will be called at different stages of the instance's lifecycle, such as [mounted](../api/options-lifecycle-hooks.html#mounted), [updated](../api/options-lifecycle-hooks.html#updated), and [unmounted](../api/options-lifecycle-hooks.html#unmounted). All lifecycle hooks are called with their `this` context pointing to the current active instance invoking it.
146+
Existem outros gatilhos chamados em diferentes etapas do ciclo de vida da instância, como [`mounted`](../api/#mounted), [`updated`](../api/#updated) e [`destroyed`](../api/#destroyed). Qualquer gatilho de ciclo de vida é executado com seu contexto `this` apontando para a instância Vue que o invocou.
142147

143-
::: tip
144-
Don't use [arrow functions](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions) on an options property or callback, such as `created: () => console.log(this.a)` or `vm.$watch('a', newValue => this.myMethod())`. Since an arrow function doesn't have a `this`, `this` will be treated as any other variable and lexically looked up through parent scopes until found, often resulting in errors such as `Uncaught TypeError: Cannot read property of undefined` or `Uncaught TypeError: this.myMethod is not a function`.
145-
:::
148+
Não utilize [_arrow functions_](https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Functions/Arrow_functions) em propriedades de opções ou _callback_, como em `created: () => console.log(this.a)` ou `vm.$watch('a', newValue => this.myMethod())`. Como as _arrow functions_ não possuem um `this`,`this` será tratado como qualquer outra variável e lexicamente pesquisada através de escopos parentais até ser encontrada, frequentemente resultando em erros como `Uncaught TypeError: Cannot read property of undefined` ou `Uncaught TypeError: this.myMethod is not a function`.
146149

147-
## Lifecycle Diagram
150+
## Diagrama do Ciclo de Vida
148151

149-
Below is a diagram for the instance lifecycle. You don't need to fully understand everything going on right now, but as you learn and build more, it will be a useful reference.
152+
Abaixo está um diagrama para o ciclo de vida da instância. Você não precisa entender completamente tudo o que está acontecendo neste momento,
153+
mas conforme você for aprendendo e construindo mais coisas, este diagrama se tornará uma referência útil.
150154

151-
<img src="/images/lifecycle.png" width="840" height="auto" style="margin: 0px auto; display: block; max-width: 100%;" loading="lazy" alt="Instance lifecycle hooks">
155+
![Ciclo de Vida da Instância Vue](/images/lifecycle.png)

0 commit comments

Comments
 (0)