|
1 |
| -# State Transitions |
| 1 | +# Transições de Estado |
2 | 2 |
|
3 |
| -Vue's transition system offers many simple ways to animate entering, leaving, and lists, but what about animating your data itself? For example: |
| 3 | +O sistema de transição do Vue oferece muitas maneiras simples de animar entradas, saídas e listas, mas que tal animar seus próprios dados? Por exemplo: |
4 | 4 |
|
5 |
| -- numbers and calculations |
6 |
| -- colors displayed |
7 |
| -- the positions of SVG nodes |
8 |
| -- the sizes and other properties of elements |
| 5 | +- números e cálculos |
| 6 | +- cores exibidas |
| 7 | +- as posições dos nós (*nodes*) SVG |
| 8 | +- os tamanhos e outras propriedades dos elementos |
9 | 9 |
|
10 |
| -All of these are either already stored as raw numbers or can be converted into numbers. Once we do that, we can animate these state changes using 3rd-party libraries to tween state, in combination with Vue's reactivity and component systems. |
| 10 | +Todos eles já estão armazenados como números brutos ou podem ser convertidos em números. Depois de fazer isso, podemos animar essas mudanças de estado usando bibliotecas de terceiros para interpolar o estado, em combinação com a reatividade e os sistemas de componentes do Vue. |
11 | 11 |
|
12 |
| -## Animating State with Watchers |
| 12 | +## Animando Estado com Observadores |
13 | 13 |
|
14 |
| -Watchers allow us to animate changes of any numerical property into another property. That may sound complicated in the abstract, so let's dive into an example using [GreenSock](https://greensock.com/): |
| 14 | + |
| 15 | +Os observadores nos permitem animar mudanças de qualquer propriedade numérica em outra propriedade. Isso pode parecer complicado no abstrato, então vamos mergulhar em um exemplo usando [GreenSock](https://greensock.com/): |
15 | 16 |
|
16 | 17 | ```html
|
17 | 18 | <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.2.4/gsap.min.js"></script>
|
@@ -46,28 +47,28 @@ Vue.createApp(Demo).mount('#animated-number-demo')
|
46 | 47 | ```
|
47 | 48 |
|
48 | 49 | <p class="codepen" data-height="300" data-theme-id="39028" data-default-tab="js,result" data-user="Vue" data-slug-hash="22903bc3b53eb5b7817378ecb985ce96" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-pen-title="Transitioning State 1">
|
49 |
| - <span>See the Pen <a href="https://codepen.io/team/Vue/pen/22903bc3b53eb5b7817378ecb985ce96"> |
50 |
| - Transitioning State 1</a> by Vue (<a href="https://codepen.io/Vue">@Vue</a>) |
51 |
| - on <a href="https://codepen.io">CodePen</a>.</span> |
| 50 | + <span>Veja o exemplo <a href="https://codepen.io/team/Vue/pen/22903bc3b53eb5b7817378ecb985ce96"> |
| 51 | + Estado de Transição 1</a> do Vue (<a href="https://codepen.io/Vue">@Vue</a>) |
| 52 | + no <a href="https://codepen.io">CodePen</a>.</span> |
52 | 53 | </p>
|
53 | 54 | <script async src="https://static.codepen.io/assets/embed/ei.js"></script>
|
54 | 55 |
|
55 |
| -When you update the number, the change is animated below the input. |
| 56 | +Quando você atualiza o número, a mudança é animada abaixo da entrada. |
56 | 57 |
|
57 |
| -## Dynamic State Transitions |
| 58 | +## Transições de Estado Dinâmico |
58 | 59 |
|
59 |
| -As with Vue's transition components, the data backing state transitions can be updated in real time, which is especially useful for prototyping! Even using a simple SVG polygon, you can achieve many effects that would be difficult to conceive of until you've played with the variables a little. |
| 60 | +Tal como acontece com os componentes de transição do Vue, as transições de estado de suporte de dados podem ser atualizadas em tempo real, o que é especialmente útil para prototipagem! Mesmo usando um polígono SVG simples, você pode obter muitos efeitos que seriam difíceis de conceber até que você jogasse um pouco com as variáveis. |
60 | 61 |
|
61 | 62 | <p class="codepen" data-height="500" data-theme-id="39028" data-default-tab="js,result" data-user="Vue" data-slug-hash="a8e00648d4df6baa1b19fb6c31c8d17e" data-preview="true" style="height: 493px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-pen-title="Updating SVG">
|
62 |
| - <span>See the Pen <a href="https://codepen.io/team/Vue/pen/a8e00648d4df6baa1b19fb6c31c8d17e"> |
63 |
| - Updating SVG</a> by Vue (<a href="https://codepen.io/Vue">@Vue</a>) |
64 |
| - on <a href="https://codepen.io">CodePen</a>.</span> |
| 63 | + <span>Veja o exemplo<a href="https://codepen.io/team/Vue/pen/a8e00648d4df6baa1b19fb6c31c8d17e"> |
| 64 | + Atualizando SVG</a> do Vue (<a href="https://codepen.io/Vue">@Vue</a>) |
| 65 | + no <a href="https://codepen.io">CodePen</a>.</span> |
65 | 66 | </p>
|
66 | 67 | <script async src="https://static.codepen.io/assets/embed/ei.js"></script>
|
67 | 68 |
|
68 |
| -## Organizing Transitions into Components |
| 69 | +## Organizando Transições em Componentes |
69 | 70 |
|
70 |
| -Managing many state transitions can quickly increase the complexity of a component instance. Fortunately, many animations can be extracted out into dedicated child components. Let's do this with the animated integer from our earlier example: |
| 71 | +Gerenciar muitas transições de estado pode aumentar rapidamente a complexidade de uma instância de componente. Felizmente, muitas animações podem ser extraídas em componentes filhos dedicados. Vamos fazer isso com o inteiro animado de nosso exemplo anterior: |
71 | 72 |
|
72 | 73 | ```html
|
73 | 74 | <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.2.4/gsap.min.js"></script>
|
@@ -139,23 +140,23 @@ app.mount('#app')
|
139 | 140 | ```
|
140 | 141 |
|
141 | 142 | <p class="codepen" data-height="300" data-theme-id="39028" data-default-tab="js,result" data-user="Vue" data-slug-hash="e9ef8ac7e32e0d0337e03d20949b4d17" data-preview="true" style="height: 300px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; border: 2px solid; margin: 1em 0; padding: 1em;" data-pen-title="State Transition Components">
|
142 |
| - <span>See the Pen <a href="https://codepen.io/team/Vue/pen/e9ef8ac7e32e0d0337e03d20949b4d17"> |
143 |
| - State Transition Components</a> by Vue (<a href="https://codepen.io/Vue">@Vue</a>) |
144 |
| - on <a href="https://codepen.io">CodePen</a>.</span> |
| 143 | + <span>Veja o exemplo <a href="https://codepen.io/team/Vue/pen/e9ef8ac7e32e0d0337e03d20949b4d17"> |
| 144 | + Componentes de Transição de Estado</a> do Vue (<a href="https://codepen.io/Vue">@Vue</a>) |
| 145 | + no <a href="https://codepen.io">CodePen</a>.</span> |
145 | 146 | </p>
|
146 | 147 | <script async src="https://static.codepen.io/assets/embed/ei.js"></script>
|
147 | 148 |
|
148 |
| -Now we can compose multiple states with these child components. It's exciting- we can use any combination of transition strategies that have been covered on this page, along with those offered by Vue's [built-in transition system](transitions.html). Together, there are very few limits to what can be accomplished. |
| 149 | +Agora podemos compor vários estados com esses componentes filhos. É empolgante - podemos usar qualquer combinação de estratégias de transição que foram abordadas nesta página, junto com as oferecidas pelo [sistema de transição integrado](transitions.html) do Vue. Juntos, existem poucos limites para o que pode ser realizado. |
149 | 150 |
|
150 |
| -You can see how we could use this for data visualization, for physics effects, for character animations and interactions, the sky's the limit. |
| 151 | +Você pode ver como podemos usar isso para visualização de dados, para efeitos físicos, para animações e interações de personagens, o céu é o limite. |
151 | 152 |
|
152 |
| -## Bringing Designs to Life |
| 153 | +## Dando Vida aos Designs |
153 | 154 |
|
154 |
| -To animate, by one definition, means to bring to life. Unfortunately, when designers create icons, logos, and mascots, they're usually delivered as images or static SVGs. So although GitHub's octocat, Twitter's bird, and many other logos resemble living creatures, they don't really seem alive. |
| 155 | +Para animar, por uma definição, significa trazer à vida. Infelizmente, quando os designers criam ícones, logotipos e mascotes, eles geralmente são entregues como imagens ou SVGs estáticos. Portanto, embora o polvo-gato do GitHub, o pássaro do Twitter e muitos outros logotipos se assemelhem a criaturas vivas, eles não parecem realmente vivos. |
155 | 156 |
|
156 |
| -Vue can help. Since SVGs are just data, we only need examples of what these creatures look like when excited, thinking, or alarmed. Then Vue can help transition between these states, making your welcome pages, loading indicators, and notifications more emotionally compelling. |
| 157 | +O Vue pode ajudar. Como os SVGs são apenas dados, precisamos apenas de exemplos de como essas criaturas se parecem quando empolgadas, pensando ou alarmadas. O Vue pode ajudar na transição entre esses estados, tornando suas páginas de boas-vindas, indicadores de carregamento e notificações mais emocionalmente atraentes. |
157 | 158 |
|
158 |
| -Sarah Drasner demonstrates this in the demo below, using a combination of timed and interactivity-driven state changes: |
| 159 | +Sarah Drasner demonstra isso na demonstração abaixo, usando uma combinação de mudanças de estado cronometradas e orientadas à interatividade: |
159 | 160 |
|
160 |
| -<p data-height="400" data-theme-id="light" data-slug-hash="YZBGNp" data-default-tab="result" data-user="sdras" data-embed-version="2" data-pen-title="Vue-controlled Wall-E" class="codepen">See the Pen <a href="https://codepen.io/sdras/pen/YZBGNp/">Vue-controlled Wall-E</a> by Sarah Drasner (<a href="https://codepen.io/sdras">@sdras</a>) on <a href="https://codepen.io">CodePen</a>.</p> |
| 161 | +<p data-height="400" data-theme-id="light" data-slug-hash="YZBGNp" data-default-tab="result" data-user="sdras" data-embed-version="2" data-pen-title="Vue-controlled Wall-E" class="codepen">Veja o exemplo <a href="https://codepen.io/sdras/pen/YZBGNp/">Vue-controlled Wall-E</a> por Sarah Drasner (<a href="https://codepen.io/sdras">@sdras</a>) no <a href="https://codepen.io">CodePen</a>.</p> |
161 | 162 | <script async src="https://production-assets.codepen.io/assets/embed/ei.js"></script>
|
0 commit comments