Skip to content

Commit 12a837c

Browse files
authored
Merge pull request #148 from danielesreis/guide/state-management-pt-br
guide: Translates state-management to pt-br
2 parents 463252f + 24fa9d2 commit 12a837c

File tree

1 file changed

+22
-22
lines changed

1 file changed

+22
-22
lines changed

src/guide/state-management.md

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
# State Management
1+
# Gerenciamento de Estado
22

3-
## Official Flux-Like Implementation
3+
## Implementação Oficial Estilo Flux
44

5-
Large applications can often grow in complexity, due to multiple pieces of state scattered across many components and the interactions between them. To solve this problem, Vue offers [vuex](https://github.com/vuejs/vuex), our own Elm-inspired state management library. It even integrates into [vue-devtools](https://github.com/vuejs/vue-devtools), providing zero-setup access to [time travel debugging](https://raw.githubusercontent.com/vuejs/vue-devtools/master/media/demo.gif).
5+
Grandes aplicações podem frequentemente crescer em complexidade, devido à múltiplas partes do estado da aplicação espalhadas em vários componentes e em interações entre eles. Para resolver esse problema, Vue oferece o [Vuex](https://github.com/vuejs/vuex), nossa própria biblioteca de gerenciamento de estado inspirada na arquitetura Elm. Ele é também integrado ao [vue-devtools](https://github.com/vuejs/vue-devtools), permitindo uma [navegação pelo histórico de mudanças de estado](https://raw.githubusercontent.com/vuejs/vue-devtools/master/media/demo.gif) (_time travel debugging_) sem qualquer configuração inicial.
66

7-
### Information for React Developers
7+
### Informação para Desenvolvedores React
88

9-
If you're coming from React, you may be wondering how vuex compares to [redux](https://github.com/reactjs/redux), the most popular Flux implementation in that ecosystem. Redux is actually view-layer agnostic, so it can easily be used with Vue via [simple bindings](https://classic.yarnpkg.com/en/packages?q=redux%20vue&p=1). Vuex is different in that it _knows_ it's in a Vue app. This allows it to better integrate with Vue, offering a more intuitive API and improved development experience.
9+
Se você vem do React, deve estar se perguntando como o Vuex se compara ao [Redux](https://github.com/reactjs/redux), a implementação Flux mais popular do ecossistema. O Redux é agnóstico quanto à camada _view_, de forma que ele pode ser usado facilmente com Vue através de [ligações simples](https://classic.yarnpkg.com/en/packages?q=redux%20vue&p=1). O Vuex é diferente por **saber** que está em uma aplicação Vue. Isso permite uma melhor integração com Vue ao fornecer uma API mais intuitiva e uma melhor experiência de desenvolvimento.
1010

11-
## Simple State Management from Scratch
11+
## Gerenciamento de Estado Simples do Zero
1212

13-
It is often overlooked that the source of truth in Vue applications is the reactive `data` object - a component instance only proxies access to it. Therefore, if you have a piece of state that should be shared by multiple instances, you can use a [reactive](/guide/reactivity-fundamentals.html#declaring-reactive-state) method to make an object reactive:
13+
Frequentemente as pessoas esquecem que a fonte de verdade de aplicações Vue são os objetos reativos `data` - uma instância Vue apenas direciona acesso à eles. Portanto, se você possui uma parte do estado que deveria ser compartilhado entre instâncias múltiplas, você pode usar um método [`reactive`](/guide/reactivity-fundamentals.html#declaring-reactive-state) para tornar um objeto reativo.
1414

1515
```js
1616
const sourceOfTruth = Vue.reactive({
17-
message: 'Hello'
17+
message: 'Olá'
1818
})
1919

2020
const appA = Vue.createApp({
@@ -36,50 +36,50 @@ const appB = Vue.createApp({
3636
<div id="app-b">App B: {{ message }}</div>
3737
```
3838

39-
Now whenever `sourceOfTruth` is mutated, both `appA` and `appB` will update their views automatically. We have a single source of truth now, but debugging would be a nightmare. Any piece of data could be changed by any part of our app at any time, without leaving a trace.
39+
Agora, sempre que `sourceOfTruth` mudar, tanto `appA` e `appB` irão atualizar suas _views_ automaticamente. Possuímos uma única fonte de verdade agora, porém a depuração vira um pesadelo. Qualquer dado pode ser modificado em qualquer parte de nossa aplicação a qualquer momento, sem deixar rastro algum.
4040

4141
```js
4242
const appB = Vue.createApp({
4343
data() {
4444
return sourceOfTruth
4545
},
4646
mounted() {
47-
sourceOfTruth.message = 'Goodbye' // both apps will render 'Goodbye' message now
47+
sourceOfTruth.message = 'Adeus' // ambas aplicações irão renderizar "Adeus"
4848
}
4949
}).mount('#app-b')
5050
```
5151

52-
To help solve this problem, we can adopt a **store pattern**:
52+
Para ajudar a resolver esse problema, podemos adotar o padrão **store**:
5353

5454
```js
5555
const store = {
5656
debug: true,
5757

5858
state: Vue.reactive({
59-
message: 'Hello!'
59+
message: 'Olá!'
6060
}),
6161

6262
setMessageAction(newValue) {
6363
if (this.debug) {
64-
console.log('setMessageAction triggered with', newValue)
64+
console.log('setMessageAction disparado com', newValue)
6565
}
6666

6767
this.state.message = newValue
6868
},
6969

7070
clearMessageAction() {
7171
if (this.debug) {
72-
console.log('clearMessageAction triggered')
72+
console.log('clearMessageAction disparado')
7373
}
7474

7575
this.state.message = ''
7676
}
7777
}
7878
```
7979

80-
Notice all actions that mutate the store's state are put inside the store itself. This type of centralized state management makes it easier to understand what type of mutations could happen and how they are triggered. Now when something goes wrong, we'll also have a log of what happened leading up to the bug.
80+
Perceba que todas as ações que modificam o estado da store são colocadas dentro da própria store. Esse tipo de gerenciamento de estado centralizado facilita a compreensão de que tipo de mutações podem acontecer e como elas são disparadas. Agora, temos um _log_ de mudanças para quando algo der errado.
8181

82-
In addition, each instance/component can still own and manage its own private state:
82+
Além disso, cada instância/componente pode ainda possuir e gerenciar seu estado privado:
8383

8484
```html
8585
<div id="app-a">{{sharedState.message}}</div>
@@ -96,7 +96,7 @@ const appA = Vue.createApp({
9696
}
9797
},
9898
mounted() {
99-
store.setMessageAction('Goodbye!')
99+
store.setMessageAction('Adeus!')
100100
}
101101
}).mount('#app-a')
102102

@@ -110,12 +110,12 @@ const appB = Vue.createApp({
110110
}).mount('#app-b')
111111
```
112112

113-
![State Management](/images/state.png)
113+
![Gerenciamento de Estado](/images/state.png)
114114

115-
::: tip
116-
You should never replace the original state object in your actions - the components and the store need to share reference to the same object in order for mutations to be observed.
115+
::: tip Dica
116+
Você jamais deve substituir o objeto `state` original - os componentes e a store precisam compartilhar a referência para o mesmo objeto, de forma que as mutações sejam acompanhadas.
117117
:::
118118

119-
As we continue developing the convention, where components are never allowed to directly mutate state that belongs to a store but should instead dispatch events that notify the store to perform actions, we eventually arrive at the [Flux](https://facebook.github.io/flux/) architecture. The benefit of this convention is we can record all state mutations happening to the store and implement advanced debugging helpers such as mutation logs, snapshots, and history re-rolls / time travel.
119+
Ao desenvolvermos uma convenção em que componentes não devem modificar diretamente o estado pertencente à store, mas sim disparar eventos que comuniquem a store à realizar ações, nós chegamos na arquitetura [Flux](https://facebook.github.io/flux/). A vantagem dessa convenção é que podemos registrar todas as mudanças de estado e implementar auxiliares avançados de depuração, tais como _logs_ de mutação, _snapshots_ e repetição de histórico (_history re-rolls_) / navegação de histórico (_time travel_).
120120

121-
This brings us full circle back to [Vuex](https://github.com/vuejs/vuex), so if you've read this far it's probably time to try it out!
121+
O que nos leva totalmente de volta ao [Vuex](https://github.com/vuejs/vuex), então se você leu até aqui, provavelmente é hora de testá-lo!

0 commit comments

Comments
 (0)