Skip to content

Commit 4aab08e

Browse files
authored
Review on migration/v-model
1 parent a86a738 commit 4aab08e

File tree

1 file changed

+24
-25
lines changed

1 file changed

+24
-25
lines changed

src/guide/migration/v-model.md

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,30 +5,30 @@ badges:
55

66
# `v-model` <MigrationBadges :badges="$frontmatter.badges" />
77

8-
## Visão geral
8+
## Visão Geral
99

1010
Olhando por cima o que mudou:
1111

12-
- **QUEBRA:** Quando usados em componentes customizados, `v-model` o nome padrão da propriedade e do evento mudaram:
12+
- **QUEBRA:** Quando usado em componentes customizados, o nome padrão da propriedade e do evento do `v-model` mudaram:
1313
- prop: `value` -> `modelValue`;
1414
- event: `input` -> `update:modelValue`;
15-
- **QUEBRA:** O modificador `.sync` no que existia no `v-bind` e sua aplicação no componente `model` foram subistituidos pelo`v-model` com um argumento;
16-
- **NOVO:** Multiplas atribuições do `v-model` no mesmo componente são possíveis agora;
15+
- **QUEBRA:** O modificador `.sync` que existia no `v-bind` e a opção `model` de componentes foram substituídos pelo `v-model` com um argumento;
16+
- **NOVO:** Múltiplos vínculos do `v-model` no mesmo componente são possíveis agora;
1717
- **NOVO:** Adicionado a possibilidade de criar modificadores para o `v-model`.
1818

1919
Para mais informações, continue lendo!
2020

2121
## Introdução
2222

23-
Quando o Vue 2.0 foi lançado, a diretiva `v-model` exigia para os desenvolvedores sempre usar a propriedade `value`. E se os desenvolvedores precisassem usar uma propriedade diferente para um outro propósito, eles deveriam recorrer ao uso do `v-bind.sync`. Além disso, essa relação fixa entre `v-model` e` value` levou a problemas com a forma como os elementos nativos e personalizados eram tratados
23+
Quando o Vue 2.0 foi lançado, a diretiva `v-model` exigia para os desenvolvedores sempre usar a propriedade `value`. E se os desenvolvedores precisassem usar uma propriedade diferente para um outro propósito, eles deveriam recorrer ao uso do `v-bind.sync`. Além disso, essa relação fixa entre `v-model` e` value` levou à problemas com a forma como os elementos nativos e personalizados eram tratados.
2424

25-
Na versão 2.2, introduzimos a opção do componente `model` que permite ao componente personalizar a propriedade e o evento para usar no` v-model`. No entanto, isso ainda permitia que um único `v-model` fosse usado no componente.
25+
Na versão 2.2, introduzimos a opção de componente `model` que permite ao componente personalizar a propriedade e o evento para usar no `v-model`. No entanto, isso ainda apenas permitia que um único `v-model` fosse usado no componente.
2626

2727
Com o Vue 3, a API para vinculação de dados bidirecional está sendo padronizada para reduzir a confusão e permitir aos desenvolvedores mais flexibilidade com a diretiva `v-model`.
2828

29-
## 2.x Sintaxe
29+
## Sintaxe v2.x
3030

31-
Na 2.x, usando um `v-model` em um componente era equivalente a passar uma propriedade `value` e emitir um evento `input`:
31+
Na v2.x, usando um `v-model` em um componente era equivalente a passar uma propriedade `value` e emitir um evento `input`:
3232

3333
```html
3434
<ChildComponent v-model="pageTitle" />
@@ -38,7 +38,7 @@ Na 2.x, usando um `v-model` em um componente era equivalente a passar uma propri
3838
<ChildComponent :value="pageTitle" @input="pageTitle = $event" />
3939
```
4040

41-
Se quisermos mudar os nomes da propriedade ou evento para algo diferente, precisaremos adicionar uma opção `model` ao componente `ChildComponent`:
41+
Se quiséssemos mudar os nomes da propriedade ou evento para algo diferente, precisaríamos adicionar uma opção `model` ao componente `ChildComponent`:
4242

4343
```html
4444
<!-- ParentComponent.vue -->
@@ -66,15 +66,15 @@ export default {
6666
}
6767
```
6868

69-
Então, o `v-model`nesse caso seria um atalho para:
69+
Então, o `v-model` nesse caso seria um atalho para:
7070

7171
```html
7272
<ChildComponent :title="pageTitle" @change="pageTitle = $event" />
7373
```
7474

7575
### Usando `v-bind.sync`
7676

77-
Em alguns casos, podemos precisar de uma "ligação bidirecional" para um propiedade (às vezes além do `v-model` existente para uma propriedade diferente). Para fazer isso, recomendamos a emissão de eventos no padrão de `update:myPropName`. Por exemplo, para `ChildComponent` do exemplo anterior com a propriedade `title`, poderíamos comunicar a intenção de atribuir um novo valor com:
77+
Em alguns casos, podemos precisar de uma "ligação bidirecional" para uma propriedade (às vezes além do `v-model` existente para uma propriedade diferente). Para fazer isso, recomendamos a emissão de eventos no padrão de `update:myPropName`. Por exemplo, para `ChildComponent` do exemplo anterior com a propriedade `title`, poderíamos comunicar a intenção de atribuir um novo valor com:
7878

7979
```js
8080
this.$emit('update:title', newValue)
@@ -92,11 +92,10 @@ Por conveniência, tínhamos uma abreviatura para esse padrão com o modificador
9292
<ChildComponent :title.sync="pageTitle" />
9393
```
9494

95-
## 3.x Sintaxe
95+
## Sintaxe v3.x
9696

9797
Na versão 3.x o `v-model` em um componente personalizado é equivalente a passar um prop `modelValue` e emitir um evento `update:modelValue`:
9898

99-
10099
```html
101100
<ChildComponent v-model="pageTitle" />
102101

@@ -108,7 +107,7 @@ Na versão 3.x o `v-model` em um componente personalizado é equivalente a passa
108107
/>
109108
```
110109

111-
### `v-model` argumentos
110+
### Argumentos do `v-model`
112111

113112
Para alterar o nome de um modelo, em vez de uma opção de componente `model`, agora podemos passar um _argumento_ para` v-model`:
114113

@@ -120,7 +119,7 @@ Para alterar o nome de um modelo, em vez de uma opção de componente `model`, a
120119
<ChildComponent :title="pageTitle" @update:title="pageTitle = $event" />
121120
```
122121

123-
![v-bind anatomy](/images/v-bind-instead-of-sync.png)
122+
![Anatomia do v-bind](/images/v-bind-instead-of-sync.png)
124123

125124
Isso também serve como um substituto para o modificador `.sync` e nos permite ter vários `v-model`s no componente personalizado.
126125

@@ -137,31 +136,31 @@ Isso também serve como um substituto para o modificador `.sync` e nos permite t
137136
/>
138137
```
139138

140-
### `v-model` modificadores
139+
### Modificadores do `v-model`
141140

142-
Além dos modificadores `v-model` fixos, já existentes na 2.x, como `.trim`, agora 3.x suporta modificadores personalizados:
141+
Além dos modificadores do `v-model` fixos já existentes na v2.x, como `.trim`, agora v3.x suporta modificadores personalizados:
143142

144143
```html
145144
<ChildComponent v-model.capitalize="pageTitle" />
146145
```
147146

148-
Leia mais sobre modificadores do `v-model` customizados na seção [Eventos customizados](../component-custom-events.html#handling-v-model-modifiers).
147+
Leia mais sobre modificadores do `v-model` customizados na seção [Eventos Customizados](../component-custom-events.html#handling-v-model-modifiers).
149148

150149
## Estratégia de Migração
151150

152-
Nós recomedamos:
151+
Nós recomendamos:
153152

154153
- verificar seu código aonde utilizado o `.sync` e substituí-lo por `v-model`:
155154

156155
```html
157156
<ChildComponent :title.sync="pageTitle" />
158157

159-
<!-- subistituir por -->
158+
<!-- substituir por -->
160159

161160
<ChildComponent v-model:title="pageTitle" />
162161
```
163-
164-
- para todos os `v-model`s sem argumento, certifique-se de alterar o nome das propriedades e eventos para `modelValue` e `update:modelValue` respectivamente
162+
163+
- para todos os `v-model`s sem argumentos, certifique-se de alterar o nome das propriedades e eventos para `modelValue` e `update:modelValue` respectivamente
165164

166165
```html
167166
<ChildComponent v-model="pageTitle" />
@@ -182,10 +181,10 @@ Nós recomedamos:
182181
}
183182
```
184183

185-
## Próximos passos
184+
## Próximos Passos
186185

187186
Para mais informações na nova sintaxe do `v-model`, veja:
188187

189-
- [Utilizando `v-model` nos componentes](../component-basics.html#using-v-model-on-components)
190-
- [Argumentos `v-model`](../component-custom-events.html#v-model-arguments)
188+
- [Utilizando `v-model` em Componentes](../component-basics.html#using-v-model-on-components)
189+
- [Argumentos do `v-model`](../component-custom-events.html#v-model-arguments)
191190
- [Tratando modificadores do `v-model`](../component-custom-events.html#v-model-arguments)

0 commit comments

Comments
 (0)