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: src/content/1/en/part1c.md
+5-6Lines changed: 5 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -131,8 +131,7 @@ const Hello = (props) => {
131
131
}
132
132
```
133
133
134
-
<!-- Eli koska -->
135
-
If the object we are destructuring has the values
134
+
When the object that we are destructuring has the values
136
135
137
136
```js
138
137
props = {
@@ -251,7 +250,7 @@ All of our components up till now have been simple in the sense that they have n
251
250
252
251
Next, let's add state to our application's <i>App</i> component with the help of React's [state hook](https://react.dev/learn/state-a-components-memory).
253
252
254
-
We will change the application as follows. <i>main.jsx</i> goes back to
253
+
We will change the application as follows. <i>main.jsx</i> goes back to:
255
254
256
255
```js
257
256
importReactDOMfrom'react-dom/client'
@@ -296,9 +295,9 @@ The function body that defines the component begins with the function call:
296
295
const [ counter, setCounter ] =useState(0)
297
296
```
298
297
299
-
The function call adds <i>state</i> to the component and renders it initialized with the value of zero. The function returns an array that contains two items. We assign the items to the variables _counter_ and _setCounter_ by using the destructuring assignment syntax shown earlier.
298
+
The function call adds <i>state</i> to the component and renders it initialized with the value zero. The function returns an array that contains two items. We assign the items to the variables _counter_ and _setCounter_ by using the destructuring assignment syntax shown earlier.
300
299
301
-
The _counter_ variable is assigned the initial value of <i>state</i> which is zero. The variable _setCounter_ is assigned a function that will be used to <i>modify the state</i>.
300
+
The _counter_ variable is assigned the initial value of <i>state</i>, which is zero. The variable _setCounter_ is assigned a function that will be used to <i>modify the state</i>.
302
301
303
302
The application calls the [setTimeout](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout) function and passes it two parameters: a function to increment the counter state and a timeout of one second:
304
303
@@ -369,7 +368,7 @@ Was your browser console open? If it wasn't, then promise that this was the last
369
368
370
369
### Event handling
371
370
372
-
We have already mentioned <i>event handlers</i> that are registered to be called when specific events occur a few times in [part 0](/en/part0). A user's interaction with the different elements of a web page can cause a collection of various kinds of events to be triggered.
371
+
We have already mentioned the <i>event handlers</i> that are registered to be called when specific events occur a few times in [part 0](/en/part0). A user's interaction with the different elements of a web page can cause a collection of various kinds of events to be triggered.
373
372
374
373
Let's change the application so that increasing the counter happens when a user clicks a button, which is implemented with the [button](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button) element.
Copy file name to clipboardExpand all lines: src/content/1/es/part1c.md
+28-29Lines changed: 28 additions & 29 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -60,7 +60,7 @@ const Hello = (props) => {
60
60
}
61
61
```
62
62
63
-
La lógica para adivinar el año de nacimiento se divide en su propia función que se llama cuando se representa el componente.
63
+
La lógica para adivinar el año de nacimiento se divide en su propia función que se llama cuando se renderiza el componente.
64
64
65
65
La edad de la persona no tiene que pasarse como parámetro a la función, ya que puede acceder directamente a todos los props que se pasan al componente.
66
66
@@ -131,7 +131,7 @@ const Hello = (props) => {
131
131
}
132
132
```
133
133
134
-
Si el objeto que estamos desestructurando tiene los valores
134
+
Cuando el objeto que estamos desestructurando tiene los valores
135
135
136
136
```js
137
137
props = {
@@ -140,7 +140,7 @@ props = {
140
140
}
141
141
```
142
142
143
-
la expresión <em>const {name, age} = props</em> asigna los valores 'Arto Hellas'a _name_ y 35 a _age_.
143
+
la expresión <em>const {name, age} = props</em> asigna los valores 'Arto Hellas'a _name_ y 35 a _age_.
144
144
145
145
Podemos llevar la desestructuración un paso más allá:
Hasta ahora, todas nuestras aplicaciones han sido tales que su apariencia sigue siendo la misma después de la renderización inicial. ¿Qué pasaría si quisiéramos crear un contador donde el valor aumentara en función del tiempo o con el clic de un botón?
179
+
Hasta ahora, la apariencia de todas nuestras aplicaciones sigue siendo la misma después de la renderización inicial. ¿Qué pasaría si quisiéramos crear un contador donde el valor aumentara en función del tiempo o con el clic de un botón?
180
180
181
181
Comencemos con lo siguiente. El archivo <i>App.jsx</i> se convierte en:
El componente de la aplicación recibe el valor del contador a través de la prop _counter_. Este componente muestra el valor en la pantalla. ¿Qué sucede cuando cambia el valor de _counter_? Incluso si tuviéramos que agregar lo siguiente
208
+
El componente de la aplicación recibe el valor del contador a través del prop _counter_. Este componente muestra el valor en la pantalla. ¿Qué sucede cuando cambia el valor de _counter_? Incluso si tuviéramos que agregar lo siguiente
210
209
211
210
```js
212
211
counter +=1
@@ -249,9 +248,9 @@ Hacer llamadas repetidas al método _ReactDOM.render_ no es la forma recomendada
249
248
250
249
Todos nuestros componentes hasta ahora han sido simples en el sentido de que no contienen ningún estado que pueda cambiar durante el ciclo de vida del componente.
251
250
252
-
A continuación, agreguemos estado al componente <i>App</i> de nuestra aplicación con la ayuda del [hook de estado](https://es.react.dev/reference/react/useState) de React.
251
+
A continuación, agreguemos estado al componente <i>App</i> de nuestra aplicación con la ayuda del [hook de estado](https://es.react.dev/learn/state-a-components-memory) de React.
253
252
254
-
Cambiaremos la aplicación a lo siguiente:
253
+
Cambiaremos la aplicación a lo siguiente. <i>main.jsx</i> vuelve a:
255
254
256
255
```js
257
256
importReactDOMfrom'react-dom/client'
@@ -296,9 +295,9 @@ El cuerpo de la función que define el componente comienza con la llamada a la f
296
295
const [ counter, setCounter ] =useState(0)
297
296
```
298
297
299
-
La llamada a la función agrega <i>state</i> al componente y lo hace inicializado con el valor de cero. La función devuelve una matriz que contiene dos elementos. Asignamos los elementos a las variables _counter_ y _setCounter_ usando la sintaxis de asignación por desestructuración mostrada anteriormente.
298
+
La llamada a la función agrega <i>state</i> al componente y lo renderiza inicializado con el valor cero. La función devuelve un array que contiene dos elementos. Asignamos los elementos a las variables _counter_ y _setCounter_ usando la sintaxis de asignación por desestructuración mostrada anteriormente.
300
299
301
-
A la variable _counter_ se le asigna el valor inicial de <i>state</i> que es cero. La variable _setCounter_ se asigna a una función que se utilizará para <i>modificar el estado</i>.
300
+
A la variable _counter_ se le asigna el valor inicial de <i>state</i>, que es cero. La variable _setCounter_ se asigna a una función que se utilizará para <i>modificar el estado</i>.
302
301
303
302
La aplicación llama a la función [setTimeout](https://developer.mozilla.org/es/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout) y le pasa dos parámetros: una función para incrementar el estado del contador y un tiempo de espera de un segundo:
304
303
@@ -342,7 +341,7 @@ Mientras tanto, el antiguo valor de _counter_ - "1" - se muestra en la pantalla.
342
341
343
342
Cada vez que _setCounter_ modifica el estado, hace que el componente se vuelva a renderizar. El valor del estado se incrementará nuevamente después de un segundo y esto continuará repitiéndose mientras la aplicación esté en ejecución.
344
343
345
-
Si el componente no se procesa cuando tu crees que debería, o si se procesa en el "momento incorrecto", puedes depurar la aplicación registrando los valores de las variables del componente en la consola. Si hacemos las siguientes adiciones a nuestro código:
344
+
Si el componente no se renderiza cuando tu crees que debería, o si se renderiza en el "momento incorrecto", puedes depurar la aplicación registrando los valores de las variables del componente en la consola. Si agregamos lo siguiente a nuestro código:
346
345
347
346
```js
348
347
constApp= () => {
@@ -367,15 +366,15 @@ Es fácil de seguir y rastrear las llamadas realizadas a la función de renderiz
367
366
368
367
¿Estaba la consola de tu navegador abierta? Si no lo estaba, entonces promete que esta sera la ultima vez que necesitas que te lo recuerden.
369
368
370
-
### Manejo de eventos
369
+
### Control de eventos
371
370
372
-
Ya hemos mencionado <i>controladores de eventos</i> algunas veces en la [parte 0](/es/part0), que están registrados para ser llamados cuando ocurren eventos específicos. Por ejemplo, la interacción de un usuario con los diferentes elementos de una página web puede provocar que se active una colección de diferentes tipos de eventos.
371
+
Ya hemos mencionado a los <i>controladores de eventos</i> algunas veces en la [parte 0](/es/part0), que están registrados para ser llamados cuando ocurren eventos específicos. Por ejemplo, la interacción de un usuario con los diferentes elementos de una página web puede provocar que se active una colección de diferentes tipos de eventos.
373
372
374
373
Cambiemos la aplicación para que aumente el contador cuando un usuario haga clic en un botón, que se implementa con el elemento [botón](https://developer.mozilla.org/es/docs/Web/HTML/Element/button).
375
374
376
-
Los elementos de botón admiten los llamados [eventos de mouse](https://developer.mozilla.org/es/docs/Web/API/MouseEvent), de los cuales [click](https://developer.mozilla.org/es/docs/Web/Events/click) es el evento más común.
375
+
Los elementos de botón admiten los llamados [eventos de mouse](https://developer.mozilla.org/es/docs/Web/API/MouseEvent), de los cuales [click](https://developer.mozilla.org/es/docs/Web/Events/click) es el evento más común. El evento de click en un botón también puede ser disparado por el teclado o por una pantalla táctil a pesar del nombre <i>mouse event</i>.
377
376
378
-
En React, [registrar una función de controlador de eventos](https://es.legacy.reactjs.org/docs/handling-events.html) en el evento <i>click</i> ocurre así:
377
+
En React, [registrar una función de controlador de eventos](https://es.react.dev/learn/responding-to-events) en el evento <i>click</i> ocurre así:
379
378
380
379
```js
381
380
constApp= () => {
@@ -475,16 +474,16 @@ Definimos los controladores de eventos para nuestros botones donde declaramos su
475
474
476
475
Esto rompería completamente nuestra aplicación:
477
476
478
-

477
+

479
478
480
479
¿Qué está pasando? Se supone que un controlador de eventos es una <i>función</i> o una <i>referencia de función</i>, y cuando escribimos
481
480
482
481
```js
483
482
<button onClick={setCounter(counter +1)}>
484
483
```
485
484
486
-
el controlador de eventos es en realidad una <i>llamada a la función</i>. En muchas situaciones esto está bien, pero no en esta situación particular. Al principio, el valor de la variable <i>counter</i> es 0. Cuando React renderiza el componente por primera vez, ejecuta la llamada de función <em>setCounter(0 + 1)</em> y cambia el valor del estado del componente en 1.
487
-
Esto hará que el componente se vuelva a renderizar, react ejecutará la llamada a la función setCounter nuevamente, y el estado cambiará dando lugar a otra repetición...
485
+
el controlador de eventos es en realidad una <i>llamada a la función</i>. En muchas situaciones esto está bien, pero no en esta situación particular. Al principio, el valor de la variable <i>counter</i> es 0. Cuando React renderiza el componente por primera vez, ejecuta la llamada de función <em>setCounter(0+1)</em> y cambia el valor del estado del componente en 1.
486
+
Esto hará que el componente se vuelva a renderizar, react ejecutará la llamada a la función setCounter nuevamente, y el estado cambiará dando lugar a otro re-renderizado..
488
487
489
488
Definamos los controladores de eventos como lo hicimos antes
490
489
@@ -536,11 +535,11 @@ Aquí los controladores de eventos se han definido correctamente. El valor del a
536
535
537
536
### Pasando el estado a componentes hijos
538
537
539
-
Se recomienda escribir componentes de React que sean pequeños y reutilizables en toda la aplicación e incluso en proyectos. Refactorizemos nuestra aplicación para que esté compuesta por tres componentes más pequeños, un componente para mostrar el contador y dos componentes para los botones.
538
+
Se recomienda escribir componentes de React que sean pequeños y reutilizables en toda la aplicación e incluso en diferentes proyectos. Refactorizemos nuestra aplicación para que esté compuesta por tres componentes más pequeños, un componente para mostrar el contador y dos componentes para los botones.
540
539
541
-
Primero implementemos un componente <i>Display</i> que es responsable de mostrar el valor del contador.
540
+
Primero implementemos un componente <i>Display</i> que sea responsable de mostrar el valor del contador.
542
541
543
-
Una de las mejores prácticas en React es [levantar el estado](https://es.legacy.reactjs.org/docs/lifting-state-up.html) en la jerarquía de componentes. La documentación dice:
542
+
Una de las mejores prácticas en React es [levantar el estado](https://es.react.dev/learn/sharing-state-between-components) en la jerarquía de componentes. La documentación dice:
544
543
545
544
> <i>A menudo, varios componentes deben reflejar los mismos datos cambiantes. Recomendamos elevar el estado compartido a su ancestro común más cercano.</i>
546
545
@@ -627,7 +626,7 @@ const App = () => {
627
626
628
627
Dado que ahora tenemos un componente <i>Button</i> fácilmente reutilizable, también hemos implementado una nueva funcionalidad en nuestra aplicación agregando un botón que se puede usar para disminuir el contador.
629
628
630
-
El controlador de eventos se pasa al componente <i>Button</i> a través de la propiedad _handleClick_. El nombre de la prop en sí no es tan significativo, pero nuestra elección de nombre no fue completamente aleatoria.
629
+
El controlador de eventos se pasa al componente <i>Button</i> a través de la propiedad _handleClick_. El nombre del prop en sí no es tan significativo, pero nuestra elección de nombre no fue completamente aleatoria.
631
630
632
631
El propio [tutorial](https://es.react.dev/learn/tutorial-tic-tac-toe) oficial de React sugiere:
633
632
"En React, es convencional usar nombres onSomething para props que representan eventos y handleSomething para las definiciones de funciones que controlan los eventos."
@@ -640,9 +639,9 @@ Cuando se inicia la aplicación, se ejecuta el código en _App_. Este código us
640
639
Este componente contiene el componente _Display_, que muestra el valor del contador, 0, y tres componentes _Button_. Todos los botones tienen controladores de eventos, que se utilizan para cambiar el estado del contador.
641
640
642
641
Cuando se hace clic en uno de los botones, se ejecuta el controlador de eventos. El controlador de eventos cambia el estado del componente _App_ con la función _setCounter_.
643
-
**Llamar a una función que cambia el estado hace que el componente se vuelva a procesar.**
642
+
**Llamar a una función que cambia el estado hace que el componente se vuelva a renderizar.**
644
643
645
-
Entonces, si un usuario hace clic en el botón <i>plus</i>, el controlador de eventos del botón cambia el valor de _counter_ a 1, y el componente _App_ se vuelve a generar.
644
+
Entonces, si un usuario hace clic en el botón <i>plus</i>, el controlador de eventos del botón cambia el valor de _counter_ a 1, y el componente _App_ se vuelve a renderizar.
646
645
Esto hace que sus subcomponentes _Display_ y _Button_ también se vuelvan a renderizar.
647
646
_Display_ recibe el nuevo valor del contador, 1, como prop. Los componentes _Button_ reciben controladores de eventos que pueden usarse para cambiar el estado del contador.
648
647
@@ -679,7 +678,7 @@ const App = () => {
679
678
}
680
679
```
681
680
682
-
Déjanos ahora ver que se imprime en la consola cuando se hace clic en los botones plus, zero y minus:
681
+
Ahora veamos que se imprime en la consola cuando se hace clic en los botones plus, zero y minus:
683
682
684
683

La función que define el componente contiene solo la declaración return, por lo que podemos definir la forma más compacta de funciones de flecha:
710
+
La función que define el componente contiene solo la declaración return, por lo que podemos definir la función usando la forma más compacta de funciones de flecha:
Podemos usar la desestructuración para obtener solo los campos requeridos de <i>props</i>, y usar la forma más compacta de funciones de flecha:
730
729
731
-
**Nota:** Cuando estas construyendo tus propios componentes, puedes nombrar sus controladores de eventos de la manera que quieras, para esto puedes referirte a la documentación de React en [Nombrar props de controladores de eventos](https://es.react.dev/learn/responding-to-events#naming-event-handler-props). Dice lo siguiente:
730
+
**Nota:** Cuando estas construyendo tus propios componentes, puedes nombrar sus controladores de eventos de la manera que quieras, para esto puedes referirte a la documentación de React en [Nombrar props de controladores de eventos](https://es.react.dev/learn/responding-to-events#naming-event-handler-props). Que dice lo siguiente:
732
731
733
732
> Por convención, las props de los controladores de eventos deberían iniciar con `on`, seguido de una letra mayúscula.
734
-
Por ejemplo, la prop `onClick` del componente Button debería ser llamada`onSmash`:
733
+
Por ejemplo, el prop `onClick` del componente Button pudo haberse llamado`onSmash`:
Copy file name to clipboardExpand all lines: src/content/2/es/part2b.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -95,7 +95,7 @@ const App = (props) => {
95
95
96
96
Hemos agregado la función _addNote_ como un controlador de eventos al elemento del formulario que se llamará cuando se envíe el formulario, haciendo clic en el botón submit.
97
97
98
-
Usamos el método discutido en la [parte 1](/es/part1/estado_del_componente_controladores_de_eventos#manejo-de-eventos) para definir nuestro controlador de eventos:
98
+
Usamos el método discutido en la [parte 1](/es/part1/estado_del_componente_controladores_de_eventos#control-de-eventos) para definir nuestro controlador de eventos:
Copy file name to clipboardExpand all lines: src/content/7/es/part7b.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,7 @@ React ofrece la opción de crear nuestros propios hooks [personalizados](https:/
38
38
39
39
Los hooks personalizados son funciones regulares de JavaScript que pueden utilizar cualquier otro hook, siempre que se adhieran a las [reglas de los hooks](/es/part1/un_estado_mas_complejo_depurando_aplicaciones_react#reglas-de-los-hooks). Además, el nombre de los hooks personalizados debe comenzar con la palabra _use_.
40
40
41
-
Implementamos una aplicación de contador en la [parte 1](/es/part1/estado_del_componente_controladores_de_eventos#manejo-de-eventos), que puede tener su valor incrementado, reducido o reiniciado. El código de la aplicación es el siguiente:
41
+
Implementamos una aplicación de contador en la [parte 1](/es/part1/estado_del_componente_controladores_de_eventos#control-de-eventos), que puede tener su valor incrementado, reducido o reiniciado. El código de la aplicación es el siguiente:
0 commit comments