You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: src/guide/mixins.md
+23-25Lines changed: 23 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
## Fundamentos
4
4
5
-
Mixins distribuem funcionalidades reutilizáveis para componentes Vue. Um objeto mixin pode conter qualquer opção de componente. Quando um componente usa um mixin, todas as opções do mixin serão "combinadas" com as opções do próprio componente.
5
+
_Mixins_ distribuem funcionalidades reutilizáveis para componentes Vue. Um objeto _mixin_ pode conter quaisquer opções de componente. Quando um componente usa um _mixin_, todas as opções do _mixin_ serão "misturadas" com as opções do próprio componente.
6
6
7
7
Exemplo:
8
8
@@ -27,9 +27,9 @@ const app = Vue.createApp({
27
27
app.mount('#mixins-basic') // => "olá do mixin!"
28
28
```
29
29
30
-
## Opção de mesclagem
30
+
## Mesclagem de Opções
31
31
32
-
Quando um mixin e o próprio componente contêm opções de sobreposição, eles serão "mesclados" usando estratégias apropriadas.
32
+
Quando um _mixin_ e o próprio componente contêm opções se sobrepondo, elas serão "mescladas" usando estratégias apropriadas.
33
33
34
34
Por exemplo, objetos de dados passam por uma mesclagem recursiva, com os dados do componente tendo prioridade em casos de conflito.
35
35
@@ -57,27 +57,27 @@ const app = Vue.createApp({
57
57
})
58
58
```
59
59
60
-
Funções hoocks com o mesmo nome são mescladas em um array para que todas sejam chamadas. Os hoocks do Mixin serão chamados **antes** dos próprios hoocks do componente.
60
+
Gatilhos de funções com o mesmo nome são mesclados em um Array para que todos sejam chamados. Os gatilhos do _Mixin_ serão chamados **antes** dos próprios gatilhos do componente.
61
61
62
62
```js
63
63
constmyMixin= {
64
64
created() {
65
-
console.log('hook do mixin chamando')
65
+
console.log('gatilho do mixin chamado')
66
66
}
67
67
}
68
68
69
69
constapp=Vue.createApp({
70
70
mixins: [myMixin],
71
71
created() {
72
-
console.log('hook do componente chamando')
72
+
console.log('gatilho do componente chamado')
73
73
}
74
74
})
75
75
76
-
// => "hook do mixin chamando"
77
-
// => "hook do componente chamando"
76
+
// => "gatilho do mixin chamado"
77
+
// => "gatilho do componente chamado"
78
78
```
79
79
80
-
Opções que esperam valores de objeto, por exemplo `methods`, `components` e `directives`, será mesclado no mesmo objeto. As opções do componente terão prioridade quando houver chaves conflitantes nestes objetos:
80
+
Opções que esperam valores em objeto, por exemplo `methods`, `components` e `directives`, serão mescladas no mesmo objeto. As opções do componente terão prioridade quando houver chaves conflitantes nestes objetos:
81
81
82
82
```js
83
83
constmyMixin= {
@@ -112,14 +112,14 @@ vm.conflicting() // => "de si mesmo"
112
112
113
113
## Mixin Global
114
114
115
-
Você também pode aplicar um mixin globalmente para um aplicativo Vue:
115
+
Você também pode aplicar um _mixin_ globalmente para um aplicativo Vue:
116
116
117
117
```js
118
118
constapp=Vue.createApp({
119
119
myOption:'Olá!'
120
120
})
121
121
122
-
// injetar um handler para `myOption` opção personalizada
122
+
// injetar um manipulador para a opção personalizada `myOption`
123
123
app.mixin({
124
124
created() {
125
125
constmyOption=this.$options.myOption
@@ -132,14 +132,14 @@ app.mixin({
132
132
app.mount('#mixins-global') // => "Olá!"
133
133
```
134
134
135
-
Use com cuidado! Depois de aplicar um mixin globalmente, ele afetará **cada** instância de componente criada posteriormente no aplicativo fornecido (por exemplo, componentes filhos):
135
+
Use com cuidado! Depois de aplicar um _mixin_ globalmente, ele afetará **cada** instância de componente criada posteriormente no aplicativo fornecido (por exemplo, componentes filhos):
136
136
137
137
```js
138
138
constapp=Vue.createApp({
139
139
myOption:'Olá!'
140
140
})
141
141
142
-
// injetar um handler para `myOption` opção personalizada
142
+
// injetar um manipulador para a opção personalizada `myOption`
143
143
app.mixin({
144
144
created() {
145
145
constmyOption=this.$options.myOption
@@ -160,21 +160,21 @@ app.mount('#mixins-global')
160
160
// => "Olá do componente"
161
161
```
162
162
163
-
Na maioria dos casos, você só deve usá-lo para manipulação de opções personalizadas, conforme demonstrado no exemplo acima. Também é uma boa ideia enviá-los como [Plugins](plugins.html) para evitar a aplicação duplicada.
163
+
Na maioria dos casos, você só deve usá-lo para manipulação de opções personalizadas, conforme demonstrado no exemplo acima. Também é uma boa ideia entregá-los como [Plugins](plugins.html) para evitar aplicação duplicada.
164
164
165
-
## Estratégias de combinação de opções personalizadas
165
+
## Estratégias de Mesclagem de Opções Personalizadas
166
166
167
-
Quando as opções personalizadas são mescladas, elas usam a estratégia padrão que substitui o valor existente. Se você deseja que uma opção personalizada seja mesclada usando uma lógica personalizada, você precisa anexar uma função `app.config.optionMergeStrategies`:
167
+
Quando as opções personalizadas são mescladas, elas usam a estratégia padrão que substitui o valor existente. Se você deseja que uma opção personalizada seja mesclada usando uma lógica personalizada, você precisa anexar uma função à `app.config.optionMergeStrategies`:
A estratégia de mesclagem recebe o valor dessa opção definida nas instâncias pai e filho como o primeiro e segundo argumentos, respectivamente. Vamos tentar verificar o que temos nesses parâmetros quando usamos um mixin:
177
+
A estratégia de mesclagem recebe o valor dessa opção definida nas instâncias pai e filho como o primeiro e segundo argumentos, respectivamente. Vamos tentar verificar o que temos nesses parâmetros quando usamos um _mixin_:
178
178
179
179
```js
180
180
constapp=Vue.createApp({
@@ -196,9 +196,7 @@ app.mixin({
196
196
})
197
197
```
198
198
199
-
Como você pode ver, no console temos `toVal` e `fromVal` impresso primeiro no mixin e depois no `app`.
200
-
Nós sempre voltamos `fromVal` se existe é por isso `this.$options.custom` está configurado para `hello!`
201
-
No final. Vamos tentar mudar uma estratégia para sempre retornar um valor da instância filha:
199
+
Como você pode ver, no console temos `toVal` e `fromVal` impresso primeiro no _mixin_ e depois no `app`. Nós sempre retornamos `fromVal` se existir, é por isso que `this.$options.custom` está configurado para `hello!` no final. Vamos tentar mudar uma estratégia para _sempre retornar um valor da instância filha_:
202
200
203
201
```js
204
202
constapp=Vue.createApp({
@@ -217,10 +215,10 @@ app.mixin({
217
215
218
216
## Precauções
219
217
220
-
No Vue 2, os mixins eram a principal ferramenta para abstrair partes da lógica de componentes em blocos reutilizáveis. No entanto, eles têm alguns problemas:
218
+
No Vue 2, os _mixins_ eram a principal ferramenta para abstrair partes da lógica de componentes em blocos reutilizáveis. No entanto, eles têm alguns problemas:
221
219
222
-
-Mixins são propensos a conflitos: como as propriedades de cada recurso são mescladas no mesmo componente, você ainda precisa conhecer todos os outros recursos para evitar conflitos de nome de propriedade e para depuração.
220
+
-_Mixins_ são propensos à conflitos: como as propriedades de cada recurso são mescladas no mesmo componente, você ainda precisa conhecer todos os outros recursos para evitar conflitos de nome de propriedade e para depuração.
223
221
224
-
- Reutilização é limitada: não podemos passar nenhum parâmetro ao mixin para alterar sua lógica, o que reduz sua flexibilidade em termos de abstração da lógica
222
+
- Reutilização é limitada: não podemos passar nenhum parâmetro ao _mixin_ para alterar sua lógica, o que reduz sua flexibilidade em termos de abstração da lógica
225
223
226
-
Para resolver esses problemas, adicionamos uma nova maneira de organizar o código por questões lógicas: [API de composição](composition-api-introduction.html).
224
+
Para resolver esses problemas, adicionamos uma nova maneira de organizar o código por questões lógicas: A [API de Composição](composition-api-introduction.html).
0 commit comments