|
1 |
| -# Handling Edge Cases |
| 1 | +# Lidando com Casos Extremos |
2 | 2 |
|
3 |
| -> This page assumes you've already read the [Components Basics](components.md). Read that first if you are new to components. |
| 3 | +> Esta página assume que você já leu o [Básico sobre Componentes](component-basics.md). Leia lá primeiro se o desenvolvimento de componentes for novidade para você. |
4 | 4 |
|
5 |
| -:::tip Note |
6 |
| -All the features on this page document the handling of edge cases, meaning unusual situations that sometimes require bending Vue's rules a little. Note however, that they all have disadvantages or situations where they could be dangerous. These are noted in each case, so keep them in mind when deciding to use each feature. |
| 5 | +::: tip NOTA |
| 6 | +Todos os recursos dessa página documentam o tratamento de casos extremos, ou seja, situações incomuns que às vezes exigem que as regras do Vue sejam levemente contornadas. Observe, entretanto, que todos eles têm desvantagens ou situações onde podem ser perigosos. Estes detalhes são expostos em cada caso, portanto, lembre-se ao decidir usar cada recurso. |
7 | 7 | :::
|
8 | 8 |
|
9 |
| -## Controlling Updates |
| 9 | +## Controlando Atualizações |
10 | 10 |
|
11 |
| -Thanks to Vue's Reactivity system, it always knows when to update (if you use it correctly). There are edge cases, however, when you might want to force an update, despite the fact that no reactive data has changed. Then there are other cases when you might want to prevent unnecessary updates. |
| 11 | +Graças ao sistema de reatividade do Vue, ele sempre sabe quando atualizar a interface (se você usá-lo corretamente). Porém, há casos incomuns em que possa querer forçar uma atualização, mesmo que nenhum dado reativo tenha mudado. Também há casos em que possa querer prevenir atualizações desnecessárias. |
12 | 12 |
|
13 |
| -### Forcing an Update |
| 13 | +### Forçando uma Atualização |
14 | 14 |
|
15 |
| -If you find yourself needing to force an update in Vue, in 99.99% of cases, you've made a mistake somewhere. For example, you may be relying on state that isn't tracked by Vue's reactivity system, e.g. with `data` property added after component creation. |
| 15 | +Se você precisar forçar uma atualização no Vue, em 99,99% dos casos você cometeu um erro em algum lugar. Por exemplo, você pode estar contando com um estado que não é monitorado pelo sistema de reatividade do Vue, por exemplo, contando com uma propriedade `data` adicionada após a criação do componente. |
16 | 16 |
|
17 |
| -However, if you've ruled out the above and find yourself in this extremely rare situation of having to manually force an update, you can do so with [`$forceUpdate`](../api/instance-methods.html#forceupdate). |
| 17 | +No entanto, se você descartou a opção acima e se encontra nessa situação extremamente rara de ter que forçar manualmente uma atualização, você pode fazer isso com [`$forceUpdate`](../api/instance-methods.html#forceupdate). |
18 | 18 |
|
19 |
| -### Cheap Static Components with `v-once` |
| 19 | +### Componentes Estáticos Econômicos com `v-once` |
20 | 20 |
|
21 |
| -Rendering plain HTML elements is very fast in Vue, but sometimes you might have a component that contains **a lot** of static content. In these cases, you can ensure that it's only evaluated once and then cached by adding the `v-once` directive to the root element, like this: |
| 21 | +Renderizar elementos HTML puros é algo bem rápido no Vue mas, algumas vezes, você pode ter um componente que possui **uma grande quantidade** de conteúdo estático. Nesses casos, você pode garantir que ele seja avaliado somente uma vez e então armazenado em cache, adicionando a diretiva `v-once` ao elemento raiz, como mostrado abaixo: |
22 | 22 |
|
23 |
| -``` js |
| 23 | +```js |
24 | 24 | app.component('terms-of-service', {
|
25 | 25 | template: `
|
26 | 26 | <div v-once>
|
27 |
| - <h1>Terms of Service</h1> |
28 |
| - ... a lot of static content ... |
| 27 | + <h1>Termos de serviço</h1> |
| 28 | + ... muito conteúdo estático ... |
29 | 29 | </div>
|
30 |
| - ` |
| 30 | + `, |
31 | 31 | })
|
32 | 32 | ```
|
33 | 33 |
|
34 |
| -:::tip |
35 |
| -Once again, try not to overuse this pattern. While convenient in those rare cases when you have to render a lot of static content, it's simply not necessary unless you actually notice slow rendering - plus, it could cause a lot of confusion later. For example, imagine another developer who's not familiar with `v-once` or simply misses it in the template. They might spend hours trying to figure out why the template isn't updating correctly. |
| 34 | +::: tip DICA |
| 35 | +Como de costume, tente não abusar deste padrão. Embora seja conveniente nos raros casos em que você precisar renderizar muito conteúdo estático, isso simplesmente não é necessário a menos que você realmente observe uma renderização lenta - além disso, pode causar muita confusão posteriormente. Por exemplo, imagine outro desenvolvedor que não está familiarizado com o `v-once` ou simplesmente não o notou no _template_. Ele pode vir a perder horas tentando entender o porquê de o _template_ não estar sendo atualizado. |
36 | 36 | :::
|
0 commit comments