Skip to content

Commit 3760de7

Browse files
gutofolettoglaucia86
authored andcommitted
React without ES6 (reactjs#95)
* add react without es6 pt-br translation * Apply suggestions from code review to fix Portuguese typos Co-Authored-By: gutofoletto <[email protected]> * changed wikipedia link to point to Portuguese website Co-Authored-By: gutofoletto <[email protected]> * Apply suggestions from Portuguese review Co-Authored-By: gutofoletto <[email protected]> * changed the word 'estado' to 'state' Co-Authored-By: gutofoletto <[email protected]>
1 parent 4b3711b commit 3760de7

File tree

1 file changed

+33
-33
lines changed

1 file changed

+33
-33
lines changed

content/docs/react-without-es6.md

+33-33
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
22
id: react-without-es6
3-
title: React Without ES6
3+
title: React sem ES6
44
permalink: docs/react-without-es6.html
55
---
66

7-
Normally you would define a React component as a plain JavaScript class:
7+
Normalmente você definiria um componente React como uma simples classe Javascript:
88

99
```javascript
1010
class Greeting extends React.Component {
@@ -14,7 +14,7 @@ class Greeting extends React.Component {
1414
}
1515
```
1616

17-
If you don't use ES6 yet, you may use the `create-react-class` module instead:
17+
Se você ainda não usa ES6, você pode usar o módulo `create-react-class`:
1818

1919

2020
```javascript
@@ -26,11 +26,11 @@ var Greeting = createReactClass({
2626
});
2727
```
2828

29-
The API of ES6 classes is similar to `createReactClass()` with a few exceptions.
29+
A API de classes do ES6 é similar a `createReactClass()` com algumas exceções.
3030

31-
## Declaring Default Props {#declaring-default-props}
31+
## Declarando Props padrão {#declaring-default-props}
3232

33-
With functions and ES6 classes `defaultProps` is defined as a property on the component itself:
33+
Com funções e classes ES6, `defaultProps` é definido como uma propriedade do próprio componente:
3434

3535
```javascript
3636
class Greeting extends React.Component {
@@ -42,7 +42,7 @@ Greeting.defaultProps = {
4242
};
4343
```
4444

45-
With `createReactClass()`, you need to define `getDefaultProps()` as a function on the passed object:
45+
Com `createReactClass()`, você precisa definir `getDefaultProps()` como uma função no objeto que é passado como parâmetro:
4646

4747
```javascript
4848
var Greeting = createReactClass({
@@ -57,9 +57,9 @@ var Greeting = createReactClass({
5757
});
5858
```
5959

60-
## Setting the Initial State {#setting-the-initial-state}
60+
## Configurando o State Inicial {#setting-the-initial-state}
6161

62-
In ES6 classes, you can define the initial state by assigning `this.state` in the constructor:
62+
Em classes ES6, você pode definir o state inicial ao definir `this.state` no construtor:
6363

6464
```javascript
6565
class Counter extends React.Component {
@@ -71,7 +71,7 @@ class Counter extends React.Component {
7171
}
7272
```
7373

74-
With `createReactClass()`, you have to provide a separate `getInitialState` method that returns the initial state:
74+
Com `createReactClass()`, você deve passar um método `getInitialState` que retorna o state inicial:
7575

7676
```javascript
7777
var Counter = createReactClass({
@@ -84,14 +84,14 @@ var Counter = createReactClass({
8484

8585
## Autobinding {#autobinding}
8686

87-
In React components declared as ES6 classes, methods follow the same semantics as regular ES6 classes. This means that they don't automatically bind `this` to the instance. You'll have to explicitly use `.bind(this)` in the constructor:
87+
Em componentes React declarados como classes ES6, métodos seguem a mesma semântica que classes ES6 regulares. Isso significa que elas não fazem bind do `this` da instância. Você terá que explicitamente usar `.bind(this)` no construtor:
8888

8989
```javascript
9090
class SayHello extends React.Component {
9191
constructor(props) {
9292
super(props);
9393
this.state = {message: 'Hello!'};
94-
// This line is important!
94+
// Esta linha é importante!
9595
this.handleClick = this.handleClick.bind(this);
9696
}
9797

@@ -100,7 +100,7 @@ class SayHello extends React.Component {
100100
}
101101

102102
render() {
103-
// Because `this.handleClick` is bound, we can use it as an event handler.
103+
// Devido `this.handleClick` ter sido amarrado, podemos usá-lo como um controlador de evento.
104104
return (
105105
<button onClick={this.handleClick}>
106106
Say hello
@@ -110,7 +110,7 @@ class SayHello extends React.Component {
110110
}
111111
```
112112

113-
With `createReactClass()`, this is not necessary because it binds all methods:
113+
Com `createReactClass()`, isso não é necessário por que ele faz bind de todos os métodos:
114114

115115
```javascript
116116
var SayHello = createReactClass({
@@ -132,9 +132,9 @@ var SayHello = createReactClass({
132132
});
133133
```
134134

135-
This means writing ES6 classes comes with a little more boilerplate code for event handlers, but the upside is slightly better performance in large applications.
135+
Isso significa que escrever classes ES6 necessita um pouco mais de código boilerplate para controladores de eventos. Por outro lado, é levemente mais performático em aplicações de larga escala.
136136

137-
If the boilerplate code is too unattractive to you, you may enable the **experimental** [Class Properties](https://babeljs.io/docs/plugins/transform-class-properties/) syntax proposal with Babel:
137+
Se você acha que código boilerplate pouco atraente, você pode ativar a proposta de [Class Properties](https://babeljs.io/docs/plugins/transform-class-properties/) **experimentais** com Babel:
138138

139139

140140
```javascript
@@ -143,8 +143,8 @@ class SayHello extends React.Component {
143143
super(props);
144144
this.state = {message: 'Hello!'};
145145
}
146-
// WARNING: this syntax is experimental!
147-
// Using an arrow here binds the method:
146+
// AVISO: essa sintaxe é experimental!
147+
// Usar uma arrow function aqui já faz bind do método
148148
handleClick = () => {
149149
alert(this.state.message);
150150
}
@@ -159,27 +159,27 @@ class SayHello extends React.Component {
159159
}
160160
```
161161

162-
Please note that the syntax above is **experimental** and the syntax may change, or the proposal might not make it into the language.
162+
Por favor, notem que a sintaxe acima é **experimental** e que a sintaxe pode mudar ou ainda, a proposta pode não ser implementada na linguagem.
163163

164-
If you'd rather play it safe, you have a few options:
164+
Se você prefere jogar seguro, você tem algumas opções:
165165

166-
* Bind methods in the constructor.
167-
* Use arrow functions, e.g. `onClick={(e) => this.handleClick(e)}`.
168-
* Keep using `createReactClass`.
166+
* Fazer bind do método no construtor.
167+
* Usar arrow functions, e.g. `onClick={(e) => this.handleClick(e)}`.
168+
* Continuar usando `createReactClass`.
169169

170170
## Mixins {#mixins}
171171

172-
>**Note:**
172+
>**Notas:**
173173
>
174-
>ES6 launched without any mixin support. Therefore, there is no support for mixins when you use React with ES6 classes.
174+
>ES6 foi lançado sem suporte a mixins. Portanto, não há suporte para mixins quando você usar React com classes ES6.
175175
>
176-
>**We also found numerous issues in codebases using mixins, [and don't recommend using them in the new code](/blog/2016/07/13/mixins-considered-harmful.html).**
176+
>**Nós também descobrimos inúmeros problemas na base de código usando mixins, [e não recomendamos usar em novos códigos](/blog/2016/07/13/mixins-considered-harmful.html).**
177177
>
178-
>This section exists only for the reference.
178+
>Esta seção existe somente para referência.
179179
180-
Sometimes very different components may share some common functionality. These are sometimes called [cross-cutting concerns](https://en.wikipedia.org/wiki/Cross-cutting_concern). `createReactClass` lets you use a legacy `mixins` system for that.
180+
Algumas vezes, componentes muito diferentes podem compartilhar alguma funcionalidade. Chamamos estes casos de [cross-cutting concerns](https://pt.wikipedia.org/wiki/Cross-cutting_concern). `createReactClass` permite que você use um sistema legado de `mixins` para isso.
181181

182-
One common use case is a component wanting to update itself on a time interval. It's easy to use `setInterval()`, but it's important to cancel your interval when you don't need it anymore to save memory. React provides [lifecycle methods](/docs/react-component.html#the-component-lifecycle) that let you know when a component is about to be created or destroyed. Let's create a simple mixin that uses these methods to provide an easy `setInterval()` function that will automatically get cleaned up when your component is destroyed.
182+
Um caso de uso comum é um componente que quer se atualizar em um intervalo de tempo. É fácil de usar o `setInterval()`, mas é importante do cancelar o intervalo quando você não precisa mais dele para economizar memória. React fornece [lifecycle methods](/docs/react-component.html#the-component-lifecycle) que permitem que você saiba quando um componente está prestes a ser criado ou destruído. Vamos criar um *mixin* simples que usa esses métodos para fornecer uma funcionalidade fácil de `setInterval()` que será limpa automaticamente quando seu componente for destruído.
183183

184184
```javascript
185185
var SetIntervalMixin = {
@@ -197,20 +197,20 @@ var SetIntervalMixin = {
197197
var createReactClass = require('create-react-class');
198198

199199
var TickTock = createReactClass({
200-
mixins: [SetIntervalMixin], // Use the mixin
200+
mixins: [SetIntervalMixin], // Use o mixin
201201
getInitialState: function() {
202202
return {seconds: 0};
203203
},
204204
componentDidMount: function() {
205-
this.setInterval(this.tick, 1000); // Call a method on the mixin
205+
this.setInterval(this.tick, 1000); // Chamada de um método no mixin
206206
},
207207
tick: function() {
208208
this.setState({seconds: this.state.seconds + 1});
209209
},
210210
render: function() {
211211
return (
212212
<p>
213-
React has been running for {this.state.seconds} seconds.
213+
React está rodando por {this.state.seconds} segundos.
214214
</p>
215215
);
216216
}
@@ -222,4 +222,4 @@ ReactDOM.render(
222222
);
223223
```
224224

225-
If a component is using multiple mixins and several mixins define the same lifecycle method (i.e. several mixins want to do some cleanup when the component is destroyed), all of the lifecycle methods are guaranteed to be called. Methods defined on mixins run in the order mixins were listed, followed by a method call on the component.
225+
Se um componente está usando múltiplos mixins e diversos desses mixins definem o mesmo lifecycle method (por ex. diversos mixins querem fazer uma limpeza quando um componente é destruído), todos os lifecycle methods terão garantia de serem chamados. Métodos definidos em um mixin são executados na ordem em que foram listados, seguidos por uma chamada de método no componente.

0 commit comments

Comments
 (0)