You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/docs/react-without-es6.md
+32-32
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,10 @@
1
1
---
2
2
id: react-without-es6
3
-
title: React Without ES6
3
+
title: React sin ES6
4
4
permalink: docs/react-without-es6.html
5
5
---
6
6
7
-
Normally you would define a React component as a plain JavaScript class:
7
+
Normalmente definirías un componente de React cómo una clase simple de JavaScript:
8
8
9
9
```javascript
10
10
classGreetingextendsReact.Component {
@@ -14,7 +14,7 @@ class Greeting extends React.Component {
14
14
}
15
15
```
16
16
17
-
If you don't use ES6 yet, you may use the`create-react-class` module instead:
17
+
Si aún no utilizas ES6, puedes utilizar el módulo`create-react-class`:
18
18
19
19
20
20
```javascript
@@ -26,11 +26,11 @@ var Greeting = createReactClass({
26
26
});
27
27
```
28
28
29
-
The API of ES6 classes is similar to`createReactClass()`with a few exceptions.
29
+
La API de clases en ES6 es similar a`createReactClass()`con algunas excepciones.
30
30
31
-
## Declaring Default Props
31
+
## Declarando _Props_ por Defecto
32
32
33
-
With functions and ES6 classes `defaultProps`is defined as a property on the component itself:
33
+
Con funciones y clases de ES6 `defaultProps`se define como una propiedad del componente:
34
34
35
35
```javascript
36
36
classGreetingextendsReact.Component {
@@ -42,7 +42,7 @@ Greeting.defaultProps = {
42
42
};
43
43
```
44
44
45
-
With`createReactClass()`, you need to define`getDefaultProps()`as a function on the passed object:
45
+
Con`createReactClass()`, es necesario que definas`getDefaultProps()`como una función en el objeto que se le pasa:
46
46
47
47
```javascript
48
48
var Greeting =createReactClass({
@@ -57,9 +57,9 @@ var Greeting = createReactClass({
57
57
});
58
58
```
59
59
60
-
## Setting the Initial State
60
+
## Configurando el Estado Inicial
61
61
62
-
In ES6 classes, you can define the initial state by assigning `this.state`in the constructor:
62
+
En clases de ES6, puedes definir el estado inicial al asignar `this.state`en el constructor:
63
63
64
64
```javascript
65
65
classCounterextendsReact.Component {
@@ -71,7 +71,7 @@ class Counter extends React.Component {
71
71
}
72
72
```
73
73
74
-
With`createReactClass()`, you have to provide a separate `getInitialState`method that returns the initial state:
74
+
Con`createReactClass()`, debes proveer un método adicional `getInitialState`que retorna el estado inicial:
75
75
76
76
```javascript
77
77
var Counter =createReactClass({
@@ -84,14 +84,14 @@ var Counter = createReactClass({
84
84
85
85
## Autobinding
86
86
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
+
En componentes de React declarados como clases de ES6, los métodos se rigen por la misma semántica que las clases regulares de ES6. Esto significa que no vinculan `this`automomáticamente a la instancia. Debes utilizar `.bind(this)`explícitamente en el constructor:
88
88
89
89
```javascript
90
90
classSayHelloextendsReact.Component {
91
91
constructor(props) {
92
92
super(props);
93
93
this.state= {message:'Hello!'};
94
-
//This line is important!
94
+
//Esta línea es importante!
95
95
this.handleClick=this.handleClick.bind(this);
96
96
}
97
97
@@ -100,7 +100,7 @@ class SayHello extends React.Component {
100
100
}
101
101
102
102
render() {
103
-
//Because `this.handleClick` is bound, we can use it as an event handler.
103
+
//Porque `this.handleClick` está vinculada, podemos utilizarla como un *event handler*
104
104
return (
105
105
<button onClick={this.handleClick}>
106
106
Say hello
@@ -110,7 +110,7 @@ class SayHello extends React.Component {
110
110
}
111
111
```
112
112
113
-
With`createReactClass()`, this is not necessary because it binds all methods:
113
+
Con`createReactClass()`, esto no es necesario porque vincula todos los métodos:
114
114
115
115
```javascript
116
116
var SayHello =createReactClass({
@@ -132,9 +132,9 @@ var SayHello = createReactClass({
132
132
});
133
133
```
134
134
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
+
Esto significa que las clases de ES6 traen consigo la necesidad de escribir un poco más de código repetitivo para utilizar *event handlers*, pero la ventaja radica en una ligera mejora del rendimiento en aplicaciones grandes.
136
136
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
+
Si el código repetitivo no es atractivo para ti, puedes activar la propuesta de sintaxis **experimental**[Propiedades de Clases](https://babeljs.io/docs/plugins/transform-class-properties/)con Babel:
138
138
139
139
140
140
```javascript
@@ -143,8 +143,8 @@ class SayHello extends React.Component {
143
143
super(props);
144
144
this.state= {message:'Hello!'};
145
145
}
146
-
//WARNING: this syntax is experimental!
147
-
//Using an arrow here binds the method:
146
+
//ADVERTENCIA: esta sintaxis es experimental!
147
+
//Al usar una función de flecha aquí, el método queda vinculado:
148
148
handleClick= () => {
149
149
alert(this.state.message);
150
150
}
@@ -159,27 +159,27 @@ class SayHello extends React.Component {
159
159
}
160
160
```
161
161
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, ten en encuenta que la sintaxis anterior es **experimental**y podría cambiar, o la propuesta podría no llegar a formar parte del lenguaje.
163
163
164
-
If you'd rather play it safe, you have a few options:
164
+
Si prefieres jugar a lo seguro, tienes algunas opciones:
165
165
166
-
*Bind methods in the constructor.
167
-
*Use arrow functions, e.g. `onClick={(e) => this.handleClick(e)}`.
168
-
*Keep using`createReactClass`.
166
+
*Vincular los métodos a la instancia desde el constructor.
167
+
*Usar funciones flecha, e.g. `onClick={(e) => this.handleClick(e)}`.
168
+
*Continuar utilizando`createReactClass`.
169
169
170
170
## Mixins
171
171
172
-
>**Note:**
172
+
>**Nota:**
173
173
>
174
-
>ES6 launched without any mixin support. Therefore, there is no support for mixins when you use React with ES6 classes.
174
+
>ES6 fue lanzado sin soporte de mixins. Por lo tanto, no existe soporte de mixins cuando utilizas React con clases de ES6.
175
175
>
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
+
>**Nosotros también hemos encontrado muchos problemas en bases de código en los que se ha utilizado mixins, [y no recomendamos utilizarlos en código nuevo](/blog/2016/07/13/mixins-considered-harmful.html).**
177
177
>
178
-
>This section exists only for the reference.
178
+
>Esta sección existe únicamente por referencia.
179
179
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
+
Algunas veces componentes muy diferentes pueden compartir una funcionalidad en común. Estos son algunas veces llamados [preocupaciones transversales](https://en.wikipedia.org/wiki/Cross-cutting_concern). `createReactClass`te permite utilizar el sistema heredado de `mixins`para ello.
181
181
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
+
Un caso de uso común es un componente que necesita actualizarse con un intervalo de tiempo. Es fácil utilizar `setInterval()`, pero es importante cancelar tu intervalo cuando ya no lo necesites más para ahorrar memoria. React provee [métodos de ciclo de vida](/docs/react-component.html#the-component-lifecycle)que te permiten saber cuando un componente es creado o destruido. Creemos un _mixin_ sencillo que utilice esos métodos para proveer simplemente una función`setInterval()`que será limpiada automáticamente cuando tu componente sea destruido.
183
183
184
184
```javascript
185
185
var SetIntervalMixin = {
@@ -197,12 +197,12 @@ var SetIntervalMixin = {
197
197
var createReactClass =require('create-react-class');
198
198
199
199
var TickTock =createReactClass({
200
-
mixins: [SetIntervalMixin], //Use the mixin
200
+
mixins: [SetIntervalMixin], //Utilizar el mixin
201
201
getInitialState:function() {
202
202
return {seconds:0};
203
203
},
204
204
componentDidMount:function() {
205
-
this.setInterval(this.tick, 1000); //Call a method on the mixin
205
+
this.setInterval(this.tick, 1000); //Llamar un método del mixin
206
206
},
207
207
tick:function() {
208
208
this.setState({seconds:this.state.seconds+1});
@@ -222,4 +222,4 @@ ReactDOM.render(
222
222
);
223
223
```
224
224
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
+
Si un componente utiliza multiples _mixins_ y varios _mixins_ definen el mismo método de ciclo de vida (e. varios _mixins_ quieren hacer algún tipo de limpieza cuando el componente sea destruido), todos los métodos de ciclo de vida tendrán la garantía de ser ejecutados. Los métodos definidos en _mixins_ se ejecutan en el orden en el que los _mixins_ fueron enumerados, seguidos de una llamada al método en el componente.
0 commit comments