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/part1a.md
+5-7Lines changed: 5 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,8 +9,7 @@ lang: en
9
9
10
10
We will now start getting familiar with probably the most important topic of this course, namely the [React](https://react.dev/) library. Let's start by making a simple React application as well as getting to know the core concepts of React.
11
11
12
-
The easiest way to get started by far is by using a tool called
13
-
[Vite](https://vitejs.dev/).
12
+
The easiest way to get started by far is by using a tool called [Vite](https://vitejs.dev/).
14
13
15
14
Let's create an application called <i>part1</i>, navigate to its directory and install the libraries:
16
15
@@ -35,13 +34,13 @@ npm run dev
35
34
36
35
The console says that the application has started on localhost port 5173, i.e. the address <http://localhost:5173/>:
37
36
38
-

37
+

39
38
40
39
Vite starts the application [by default](https://vitejs.dev/config/server-options.html#server-port) on port 5173. If it is not free, Vite uses the next free port number.
41
40
42
41
Open the browser and a text editor so that you can view the code as well as the webpage at the same time on the screen:
43
42
44
-

43
+

45
44
46
45
The code of the application resides in the <i>src</i> folder. Let's simplify the default code such that the contents of the file main.jsx looks like this:
47
46
@@ -85,8 +84,7 @@ in contrast to Vite's
85
84
npm run dev
86
85
```
87
86
88
-
89
-
The course is currently (11 August 2023) being updated to use Vite. Some brands may still use the application base created with create-react-app.
87
+
The course is currently (11 August 2023) being updated to use Vite. Some parts may still use the application base created with create-react-app.
90
88
91
89
### Component
92
90
@@ -388,7 +386,7 @@ Software development is hard. It gets even harder if one is not using all the po
388
386
389
387
Depending on the editor you are using, you may receive the following error message at this point:
390
388
391
-

389
+

392
390
393
391
It's not an actual error, but a warning caused by the [ESLint](https://eslint.org/) tool. You can silence the warning [react/prop-types](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/prop-types.md) by adding to the file <i>.eslintrc .cjs</i> the next line
Copy file name to clipboardExpand all lines: src/content/1/en/part1d.md
+4-7Lines changed: 4 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -106,8 +106,7 @@ The following object is set as the new state of the application:
106
106
107
107
The new value of the <i>left</i> property is now the same as the value of <i>left + 1</i> from the previous state, and the value of the <i>right</i> property is the same as the value of the <i>right</i> property from the previous state.
108
108
109
-
We can define the new state object a bit more neatly by using the [object spread](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax)
110
-
syntax that was added to the language specification in the summer of 2018:
109
+
We can define the new state object a bit more neatly by using the [object spread](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax) syntax that was added to the language specification in the summer of 2018:
However, __don't__ do this. As mentioned previously, the state of React components like _allClicks_ must not be mutated directly. Even if mutating state appears to work in some cases, it can lead to problems that are very hard to debug.
229
228
230
-
Let's take a closer look at how the clicking
231
-
is rendered to the page:
229
+
Let's take a closer look at how the clicking is rendered to the page:
232
230
233
231
```js
234
232
constApp= () => {
@@ -475,7 +473,7 @@ Keep both your code and the web page open together **at the same time, all the t
475
473
476
474
If and when your code fails to compile and your browser lights up like a Christmas tree:
477
475
478
-

476
+

479
477
480
478
don't write more code but rather find and fix the problem **immediately**. There has yet to be a moment in the history of coding where code that fails to compile would miraculously start working after writing large amounts of additional code. I highly doubt that such an event will transpire during this course either.
481
479
@@ -1134,8 +1132,7 @@ Programming is hard, that is why I will use all the possible means to make it ea
1134
1132
1135
1133
<h3>Exercises 1.6.-1.14.</h3>
1136
1134
1137
-
Submit your solutions to the exercises by first pushing your code to GitHub and then marking the completed exercises into
1138
-
the "my submissions" tab of the [submission application](https://studies.cs.helsinki.fi/stats/courses/fullstackopen).
1135
+
Submit your solutions to the exercises by first pushing your code to GitHub and then marking the completed exercises into the "my submissions" tab of the [submission application](https://studies.cs.helsinki.fi/stats/courses/fullstackopen).
1139
1136
1140
1137
Remember, submit **all** the exercises of one part **in a single submission**. Once you have submitted your solutions for one part, **you cannot submit more exercises to that part anymore**.
Copy file name to clipboardExpand all lines: src/content/1/es/part1a.md
+19-19Lines changed: 19 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,13 +11,13 @@ Ahora comenzaremos a familiarizarnos con probablemente el tema más importante d
11
11
12
12
La forma más fácil de empezar es utilizando una herramienta llamada [Vite](https://es.vitejs.dev/).
13
13
14
-
Comencemos creando una aplicación llamada <i>part1</i>, navegar a este direcctorio e instalando las librerias:
14
+
Comencemos creando una aplicación llamada <i>part1</i>, navega a este directorio e instala las librerías:
15
15
16
16
```bash
17
17
# npm 6.x (desactualizado, pero aun en uso por algunos):
18
18
npm create vite@latest part1 --template react
19
19
20
-
# npm 7+, el doble guión adicional es necesario:
20
+
# npm 7+, el doble guion adicional es necesario:
21
21
npm create vite@latest part1 -- --template react
22
22
```
23
23
@@ -34,13 +34,13 @@ npm run dev
34
34
35
35
La consola indica que la aplicación ha iniciado en localhost, puerto 5173, es decir la dirección <http://localhost:5173/>:
36
36
37
-

37
+

38
38
39
39
Vite inicia la aplicación [por defecto](https://es.vitejs.dev/config/server-options.html#server-port) en el puerto 5173. Si este no está libre, Vite utiliza el siguiente numero de puerto libre.
40
40
41
41
Abre el navegador y un editor de código para que puedas ver el código y el navegador al mismo tiempo en la pantalla:
42
42
43
-

43
+

44
44
45
45
El código de la aplicación se encuentra en la carpeta <i>src</i>. Simplifiquemos el código predeterminado de tal modo que el archivo main.jsx se vea así:
46
46
@@ -84,9 +84,7 @@ en contraste con Vite
84
84
npm run dev
85
85
```
86
86
87
-
El curso actualmente (11 de agosto de 2023) está siendo actualizado para usar Vite. Algunas marcas aun usan la aplicación base creada con create-react-app.
88
-
89
-
Creemos una aplicación llamada <i>part1</i> y naveguemos hasta su directorio.
87
+
El curso actualmente (11 de agosto de 2023) está siendo actualizado para usar Vite. Algunas partes aun usan la aplicación base creada con create-react-app.
90
88
91
89
### Componente
92
90
@@ -129,7 +127,7 @@ const App = () => (
129
127
)
130
128
```
131
129
132
-
Como probablemente adivinaste, el componente se rendizará como una etiqueta <i>div</i>, que envuelve una etiqueta <i>p</i> que contiene el texto <i>Hello world</i>.
130
+
Como probablemente adivinaste, el componente se renderiza como una etiqueta <i>div</i>, que envuelve una etiqueta <i>p</i> que contiene el texto <i>Hello world</i>.
133
131
134
132
Técnicamente, el componente se define como una función de JavaScript. La siguiente es una función (que no recibe ningún parámetro):
135
133
@@ -220,11 +218,11 @@ export default App
220
218
221
219
El export no se muestra en la mayoría de los ejemplos del material de este curso. Sin este export el componente y la aplicación completa se romperían.
222
220
223
-
¿Reduerdas que prometiste dejar la consola abierta? ¿Qué se imprimió allí?
221
+
¿Recuerdas que prometiste dejar la consola abierta? ¿Qué se imprimió allí?
224
222
225
223
### JSX
226
224
227
-
Parece que los componentes de React están devolviendo marcado HTML. Sin embargo, éste no es el caso. El diseño de los componentes de React se escribe principalmente usando [JSX](https://es.legacy.reactjs.org/docs/introducing-jsx.html). Aunque JSX se parece a HTML, en realidad estamos tratando con una forma de escribir JavaScript. Bajo el capó, el JSX devuelto por los componentes de React se compila en JavaScript.
225
+
Parece que los componentes de React están devolviendo marcado HTML. Sin embargo, éste no es el caso. El diseño de los componentes de React se escribe principalmente usando [JSX](https://es.react.dev/learn/writing-markup-with-jsx). Aunque JSX se parece a HTML, en realidad estamos tratando con una forma de escribir JavaScript. Bajo el capó, el JSX devuelto por los componentes de React se compila en JavaScript.
228
226
229
227
Después de compilar, nuestra aplicación se ve así:
230
228
@@ -376,19 +374,19 @@ const App = () => {
376
374
377
375
Los props enviados por el componente <i>App</i> son los valores de las variables, el resultado de la evaluación de la expresión de suma y un string regular.
378
376
379
-
El componente <i>Hello</i> tambien imprime en consola el valor del objeto props.
377
+
El componente <i>Hello</i> también imprime en consola el valor del objeto props.
380
378
381
379
Yo realmente espero que tu consola esté abierta. Si no es asi, recuerda tu promesa:
382
380
383
381
> <i>Prometo dejar la consola abierta todo el tiempo</i> durante este curso, y por el resto de mi vida mientras esté haciendo desarrollo web.
384
382
385
-
EL desarrollo de software es dificil. Este se vuelve aun más dificil si uno no está usando todas las herramientas disponibles como la consola de desarrollo e imprimiendo la depuración con _console.log_. Los profesionales usan ambas <i>todo el tiempo</i> y no hay una sola razón de porque un principiante no debería adoptar estos maravillosos métodos de ayuda que hacen la vida más fácil.
383
+
EL desarrollo de software es difícil. Este se vuelve aun más difícil si uno no está usando todas las herramientas disponibles como la consola de desarrollo e imprimiendo la depuración con _console.log_. Los profesionales usan ambas <i>todo el tiempo</i> y no hay una sola razón de porque un principiante no debería adoptar estos maravillosos métodos de ayuda que hacen la vida más fácil.
386
384
387
385
### Posible mensaje de error
388
386
389
-
Dependiendo del editor que estés usando, podrias recibir un mensaje de error en este punto:
387
+
Dependiendo del editor que estés usando, podrías recibir un mensaje de error en este punto:
390
388
391
-

389
+

392
390
393
391
Este realmente no es un error, es una advertencia causada por la herramienta [ESLint](https://es.eslint.org/). Tu puedes silenciar la advertencia [react/prop-types](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/docs/rules/prop-types.md) añadiendo la siguiente línea al archivo <i>.eslintrc.cjs</i>
394
392
@@ -424,7 +422,7 @@ React se ha configurado para generar mensajes de error bastante claros. A pesar
424
422
425
423
**La consola siempre debe estar abierta**. Si el navegador reporta errores, no es recomendable seguir escribiendo más código, esperando milagros. En su lugar, debes intentar comprender la causa del error y, por ejemplo, volver al estado funcional anterior:
426
424
427
-

425
+

428
426
429
427
Es bueno recordar que en React es posible y vale la pena escribir comandos <em>console.log()</em> (que se imprimen en la consola) dentro de tu código.
430
428
@@ -585,6 +583,7 @@ y la edad
585
583
```js
586
584
{friends[0].age}
587
585
```
586
+
588
587
Después de corregir el error, tu deberías limpiar los mensajes de la consola presionando el botón 🚫 y luego recargando el contenido de la página, y asegurarte de que no se están mostrando mensajes de error.
589
588
590
589
Una pequeña nota adicional a la anterior. React también permite renderizar arreglos <i>si</i> el arreglo contiene valores que son elegibles para renderizar (como números y cadenas). Así que el siguiente programa funcionaría, aunque el resultado no ser el que queremos:
@@ -629,7 +628,7 @@ part2
629
628
countries
630
629
```
631
630
632
-
Mira este [repositorio de ejemplo para el envio de ejercicios](https://github.com/fullstack-hy2020/example-submission-repository)!
631
+
Mira este [repositorio de ejemplo para el envío de ejercicios](https://github.com/fullstack-hy2020/example-submission-repository)!
633
632
634
633
Para cada parte del curso hay un directorio, que se ramifica en directorios que contienen una serie de ejercicios, como "unicafe" para la parte 1.
y <i>App.jsx</i> para que conincida con lo siguiente
652
+
653
+
y <i>App.jsx</i> para que coincida con lo siguiente
654
654
655
655
```js
656
656
constApp= () => {
@@ -704,7 +704,7 @@ const App = () => {
704
704
}
705
705
```
706
706
707
-
**ADVERTENCIA** No trates de programar todos los componentes de corrido, porque esto podría ciertamente romper toda la aplicación. Procede en pequeños pasos, pprimero haz por ejemplo: el componente <i>Header</i> y solo cuando confirmes que funciona, podrás continuar con el siguiente componente.
707
+
**ADVERTENCIA** No trates de programar todos los componentes de corrido, porque esto podría ciertamente romper toda la aplicación. Procede en pequeños pasos, primero haz por ejemplo: el componente <i>Header</i> y solo cuando confirmes que funciona, podrás continuar con el siguiente componente.
708
708
709
709
El progreso cuidadoso y en pequeños pasos puede parecer lento, pero en realidad es <i>con diferencia la forma más rápida</i> de progresar. El famoso desarrollador de software Robert "Uncle Bob" Martin ha declarado
710
710
@@ -714,7 +714,7 @@ es decir, según Martin, avanzar con cuidado y con pequeños pasos es incluso la
714
714
715
715
<h4>1.2: información del curso, paso 2</h4>
716
716
717
-
Refactoriza el componente <i>Content</i> para que no renderice ningún nombre de partes o su número de ejercicios por sí mismo. En su lugar, solo representa tres componentes <i>Part</i> de los cuales cada uno representa el nombre y el número de ejercicios de una parte.
717
+
Refactoriza el componente <i>Content</i> para que no muestre ningún nombre de partes o su número de ejercicios por sí mismo. En su lugar, solo representa tres componentes <i>Part</i> de los cuales cada uno representa el nombre y el número de ejercicios de una parte.
@@ -486,7 +486,7 @@ Al llamar a <em>arto.greet.bind(arto)</em> se crea una nueva función donde _thi
486
486
487
487
Usando [funciones de flecha](https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Functions/Arrow_functions) es posible resolver algunos de los problemas relacionados con _this_. Sin embargo, no deben usarse como métodos para objetos porque entonces _this_ no funciona en absoluto. Más adelante volveremos al comportamiento de _this_ en relación con las funciones de flecha.
488
488
489
-
Si deseas obtener una mejor comprensión de cómo funciona _this_ en JavaScript, Internet está lleno de material sobre el tema, por ejemplo, la serie de screencasts [Comprender la palabra clave this de JavaScript en profundidad](https://egghead.io/courses/understand-javascript-s-this-keyword-in-depth) de [egghead.io](https://egghead.io) es muy recomendado.
489
+
Si deseas obtener una mejor comprensión de cómo funciona _this_ en JavaScript, Internet está lleno de material sobre el tema, por ejemplo, la serie de screencasts [Comprender la palabra clave this de JavaScript en profundidad](https://egghead.io/courses/understand-javascript-s-this-keyword-in-depth) de [egghead.io](https://egghead.io) es muy recomendable.
490
490
491
491
### Clases
492
492
@@ -530,6 +530,10 @@ Si deseas conocer JavaScript en profundidad, hay una gran serie de libros gratui
530
530
531
531
Otro gran recurso para aprender JavaScript es [javascript.info](https://es.javascript.info/).
532
532
533
+
El libro gratuito [Eloquent JavaScript](https://eloquentjavascript.net) te lleva desde los conceptos básicos hasta temas interesantes rápidamente. Es una mezcla de teoría, proyectos y ejercicios, y abarca tanto la teoría general de programación como el lenguaje JavaScript.
534
+
535
+
[Namaste 🙏 JavaScript](https://www.youtube.com/playlist?list=PLlasXeu85E9cQ32gLCvAvr9vNaUccPVNP) es otro excelente y altamente recomendado tutorial gratuito de JavaScript para entender cómo funciona JS bajo el capó. Namaste JavaScript es un curso puro y en profundidad de JavaScript lanzado de forma gratuita en YouTube. Cubrirá en detalle los conceptos fundamentales de JavaScript y todo acerca de cómo JS funciona detrás de escena dentro del motor de JavaScript.
536
+
533
537
[egghead.io](https://egghead.io) tiene muchos screencasts de calidad sobre JavaScript, React y otros temas interesantes. Desafortunadamente, parte del material está detrás de un muro de pago.
0 commit comments