Skip to content

Commit e770eeb

Browse files
authored
Merge #772 claridad y correcciones a Modulos / export import
2 parents 2fdfbb8 + b4781ba commit e770eeb

File tree

2 files changed

+14
-14
lines changed

2 files changed

+14
-14
lines changed

1-js/13-modules/01-modules-intro/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
# Módulos, introducción
33

4-
A medida que nuestra aplicación crece, queremos dividirla en múltiples archivos, llamados "módulos". Un módulo puede contener una clase o una biblioteca de funciones para un propósito específico.
4+
A medida que nuestra aplicación crece, queremos dividirla en múltiples archivos, los llamados "módulos". Un módulo puede contener una clase o una biblioteca de funciones para un propósito específico.
55

66
Durante mucho tiempo, JavaScript existió sin una sintaxis de módulo a nivel de lenguaje. Esto no era un problema, porque inicialmente los scripts eran pequeños y simples.
77

1-js/13-modules/02-import-export/article.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# Export e Import
22

3-
Las directivas export e import tienen varias variantes de sintaxis.
4-
3+
Las directivas export e import tienen varias formas de sintaxis.
4+
55
En el artículo anterior vimos un uso simple, ahora exploremos más ejemplos.
66

77
## Export antes de las sentencias
88

9-
Podemos etiquetar cualquier sentencia como exportada colocando 'export' antes, ya sea una variable, función o clase.
9+
Podemos exportar cualquier declaración colocando antes 'export', ya sea a una variable, función o clase.
1010

1111
Por ejemplo, aquí todas las exportaciones son válidas:
1212

@@ -18,7 +18,7 @@ Por ejemplo, aquí todas las exportaciones son válidas:
1818
*!*export*/!* const MODULES_BECAME_STANDARD_YEAR = 2015;
1919

2020
// exportar una clase
21-
*!*export*/!* clase User {
21+
*!*export*/!* class User {
2222
constructor(name) {
2323
this.name = name;
2424
}
@@ -28,14 +28,14 @@ Por ejemplo, aquí todas las exportaciones son válidas:
2828
````smart header="Sin punto y coma después de export clase/función"
2929
Tenga en cuenta que `export` antes de una clase o una función no la hace una [expresión de función](info:function-expressions). Sigue siendo una declaración de función, aunque exportada.
3030
31-
La mayoría de las guías de estilos JavaScript no recomiendan los punto y comas después de declarar funciones y clases.
31+
La mayoría de las guías de estilos JavaScript no recomiendan punto y coma después de declarar funciones y clases.
3232
3333
Es por esto que no hay necesidad de un punto y coma al final de `export class` y `export function`:
3434
3535
```js
3636
export function sayHi(user) {
3737
alert(`Hello, ${user}!`);
38-
} *!* // no ; at the end */!*
38+
} *!* // sin ; al final */!*
3939
```
4040
4141
````
@@ -130,7 +130,7 @@ Exportemos funciones como `hi` y `bye`:
130130
export {sayHi as hi, sayBye as bye};
131131
```
132132

133-
Ahora `hi` y `bye` son los nombres oficiales para desconocidos, a ser utilizados en importaciones:
133+
Ahora `hi` y `bye` son los nombres oficiales exportados, los que usarán otros módulos al hacer sus importaciones.
134134

135135
```js
136136
// 📁 main.js
@@ -144,8 +144,8 @@ say.*!*bye*/!*('John'); // Bye, John!
144144

145145
En la práctica, existen principalmente dos tipos de módulos.
146146

147-
1. Módulos que contienen una librería, paquete de funciones, como `say.js` de arriba.
148-
2. Módulos que declaran una entidad simple, por ejemplo un módulo `user.js` exporta únicamente `class User`.
147+
1. Módulos que contienen una librería, un paquete de funciones como `say.js` de arriba.
148+
2. Módulos que declaran una entidad simple, por ejemplo un módulo `user.js` que exporta únicamente `class User`.
149149

150150
Principalmente, se prefiere el segundo enfoque, de modo que cada "cosa" reside en su propio módulo.
151151

@@ -338,7 +338,7 @@ import {login, logout} from 'auth/index.js'
338338

339339
El "archivo principal", `auth/index.js`, exporta toda la funcionalidad que queremos brindar en nuestro paquete.
340340

341-
La idea es que los extraños, los desarrolladores que usan nuestro paquete, no deben entrometerse con su estructura interna, buscar archivos dentro de nuestra carpeta de paquetes. Exportamos solo lo que es necesario en `auth/index.js` y mantenemos el resto oculto a miradas indiscretas.
341+
La idea es que los desarrolladores que usen nuestro paquete no deban lidiar con su estructura interna, buscar archivos dentro de nuestra carpeta de paquetes. Exportamos solo lo que es necesario en `auth/index.js` y mantenemos el resto oculto a miradas indiscretas.
342342

343343
Como la funcionalidad real exportada se encuentra dispersa entre el paquete, podemos importarla en `auth/index.js` y exportar desde ella:
344344

@@ -440,15 +440,15 @@ import {sayHi} from './say.js'; // import al final del archivo
440440

441441
En la práctica, las importaciones generalmente se encuentran al comienzo del archivo, pero eso es solo para mayor comodidad.
442442

443-
**Tenga en cuenta que las declaraciones de import/export no funcionan si están dentro `{...}`.**
443+
**Tenga en cuenta que import y export solo funcionan en el nivel superior del módulo, no dentro de ningún bloque `{...}`.**
444444

445-
Una importación condicional, como esta, no funcionará:
445+
Una importación condicional como esta no funcionará:
446446
```js
447447
if (something) {
448448
import {sayHi} from "./say.js"; // Error: import debe estar en nivel superior
449449
}
450450
```
451451

452-
...Pero, ¿qué pasa si realmente necesitamos importar algo condicionalmente? O en el momento adecuado? Por ejemplo, ¿cargar un módulo a pedido, cuando realmente se necesita?
452+
Pero ¿qué pasa si realmente necesitamos importar algo condicionalmente? ¿O en el momento adecuado? Por ejemplo, cargar un módulo a pedido, cuando realmente se necesita.
453453

454454
Veremos importaciones dinámicas en el próximo artículo.

0 commit comments

Comments
 (0)