Skip to content

Commit bf7ae73

Browse files
authored
Merge pull request #3405 from pablo-maff/update-spanish-version
Part 1 reviewed
2 parents b681da6 + 0ebcf24 commit bf7ae73

File tree

7 files changed

+76
-66
lines changed

7 files changed

+76
-66
lines changed

src/content/1/en/part1a.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,7 @@ lang: en
99

1010
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.
1111

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/).
1413

1514
Let's create an application called <i>part1</i>, navigate to its directory and install the libraries:
1615

@@ -35,13 +34,13 @@ npm run dev
3534

3635
The console says that the application has started on localhost port 5173, i.e. the address <http://localhost:5173/>:
3736

38-
![](../../images/1/1-vite1.png)
37+
![screenshot of the console running vite on localhost 5173](../../images/1/1-vite1.png)
3938

4039
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.
4140

4241
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:
4342

44-
![](../../images/1/1-vite4.png)
43+
![screenshot of vite initial webpage and file structure on vs code](../../images/1/1-vite4.png)
4544

4645
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:
4746

@@ -85,8 +84,7 @@ in contrast to Vite's
8584
npm run dev
8685
```
8786

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.
9088

9189
### Component
9290

@@ -388,7 +386,7 @@ Software development is hard. It gets even harder if one is not using all the po
388386

389387
Depending on the editor you are using, you may receive the following error message at this point:
390388

391-
![](../../images/1/1-vite5.png)
389+
![screenshot of vs code showing eslint error: "name is missing in props validation"](../../images/1/1-vite5.png)
392390

393391
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
394392

src/content/1/en/part1c.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ const App = () => {
363363
364364
It's easy to follow and track the calls made to the <i>App</i> component's render function:
365365
366-
![screenshot of render function with dev tools](../../images/1/4e.png)
366+
![screenshot of rendering log on dev tools](../../images/1/4e.png)
367367
368368
Was your browser console open? If it wasn't, then promise that this was the last time you need to be reminded about it.
369369
@@ -708,8 +708,7 @@ const Display = ({ counter }) => {
708708
}
709709
```
710710
711-
The function defining the component contains only the return statement, so
712-
we can define the function using the more compact form of arrow functions:
711+
The function defining the component contains only the return statement, so we can define the function using the more compact form of arrow functions:
713712
714713
```js
715714
const Display = ({ counter }) => <div>{counter}</div>

src/content/1/en/part1d.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,7 @@ The following object is set as the new state of the application:
106106

107107
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.
108108

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:
111110

112111
```js
113112
const handleLeftClick = () => {
@@ -227,8 +226,7 @@ const handleLeftClick = () => {
227226

228227
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.
229228

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:
232230

233231
```js
234232
const App = () => {
@@ -475,7 +473,7 @@ Keep both your code and the web page open together **at the same time, all the t
475473

476474
If and when your code fails to compile and your browser lights up like a Christmas tree:
477475

478-
![screenshot of code](../../images/1/6x.png)
476+
![screenshot of error pointing at the code line where it has been generated](../../images/1/6x.png)
479477

480478
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.
481479

@@ -1134,8 +1132,7 @@ Programming is hard, that is why I will use all the possible means to make it ea
11341132

11351133
<h3>Exercises 1.6.-1.14.</h3>
11361134

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).
11391136

11401137
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**.
11411138

src/content/1/es/part1a.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ Ahora comenzaremos a familiarizarnos con probablemente el tema más importante d
1111

1212
La forma más fácil de empezar es utilizando una herramienta llamada [Vite](https://es.vitejs.dev/).
1313

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:
1515

1616
```bash
1717
# npm 6.x (desactualizado, pero aun en uso por algunos):
1818
npm create vite@latest part1 --template react
1919

20-
# npm 7+, el doble guión adicional es necesario:
20+
# npm 7+, el doble guion adicional es necesario:
2121
npm create vite@latest part1 -- --template react
2222
```
2323

@@ -34,13 +34,13 @@ npm run dev
3434

3535
La consola indica que la aplicación ha iniciado en localhost, puerto 5173, es decir la dirección <http://localhost:5173/>:
3636

37-
![](../../images/1/1-vite1.png)
37+
![Captura de pantalla de la consola ejecutando vite en localhost 5173](../../images/1/1-vite1.png)
3838

3939
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.
4040

4141
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:
4242

43-
![](../../images/1/1-vite4.png)
43+
![Captura de pantalla de la pagina inicial de vite y estructura de archivos en vs code](../../images/1/1-vite4.png)
4444

4545
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í:
4646

@@ -84,9 +84,7 @@ en contraste con Vite
8484
npm run dev
8585
```
8686

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.
9088

9189
### Componente
9290

@@ -129,7 +127,7 @@ const App = () => (
129127
)
130128
```
131129

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>.
133131

134132
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):
135133

@@ -220,11 +218,11 @@ export default App
220218

221219
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.
222220

223-
¿Reduerdas que prometiste dejar la consola abierta? ¿Qué se imprimió allí?
221+
¿Recuerdas que prometiste dejar la consola abierta? ¿Qué se imprimió allí?
224222

225223
### JSX
226224

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.
228226

229227
Después de compilar, nuestra aplicación se ve así:
230228

@@ -376,19 +374,19 @@ const App = () => {
376374

377375
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.
378376

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.
380378

381379
Yo realmente espero que tu consola esté abierta. Si no es asi, recuerda tu promesa:
382380

383381
> <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.
384382
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.
386384

387385
### Posible mensaje de error
388386

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:
390388

391-
![](../../images/1/1-vite5.png)
389+
![Captura de pantalla de vs code mostrando un error de eslint: "name is missing in props validation"](../../images/1/1-vite5.png)
392390

393391
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>
394392

@@ -424,7 +422,7 @@ React se ha configurado para generar mensajes de error bastante claros. A pesar
424422

425423
**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:
426424

427-
![](../../images/1/2a.png)
425+
![Captura de pantalla de error de prop: undefined](../../images/1/2a.png)
428426

429427
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.
430428

@@ -585,6 +583,7 @@ y la edad
585583
```js
586584
{friends[0].age}
587585
```
586+
588587
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.
589588

590589
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
629628
countries
630629
```
631630

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)!
633632

634633
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.
635634

@@ -650,7 +649,8 @@ import App from './App'
650649

651650
ReactDOM.createRoot(document.getElementById('root')).render(<App />)
652651
```
653-
y <i>App.jsx</i> para que conincida con lo siguiente
652+
653+
y <i>App.jsx</i> para que coincida con lo siguiente
654654

655655
```js
656656
const App = () => {
@@ -704,7 +704,7 @@ const App = () => {
704704
}
705705
```
706706

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.
708708

709709
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
710710

@@ -714,7 +714,7 @@ es decir, según Martin, avanzar con cuidado y con pequeños pasos es incluso la
714714

715715
<h4>1.2: información del curso, paso 2</h4>
716716

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.
718718

719719
```js
720720
const Content = ... {

src/content/1/es/part1b.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ mainImage: ../../../images/part-1.svg
33
part: 1
44
letter: b
55
lang: es
6-
---
6+
---
77

88
<div class="content">
99

@@ -486,7 +486,7 @@ Al llamar a <em>arto.greet.bind(arto)</em> se crea una nueva función donde _thi
486486

487487
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.
488488

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.
490490

491491
### Clases
492492

@@ -530,6 +530,10 @@ Si deseas conocer JavaScript en profundidad, hay una gran serie de libros gratui
530530

531531
Otro gran recurso para aprender JavaScript es [javascript.info](https://es.javascript.info/).
532532

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+
533537
[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.
534538

535539
</div>

0 commit comments

Comments
 (0)