Respuestas:
En ES6, los import
s son vistas en vivo de solo lectura en valores exportados. Como resultado, cuando lo hace import a from "somemodule";
, no puede asignar a a
no importa cómo declare a
en el módulo.
Sin embargo, dado que las variables importadas son vistas en vivo , cambian de acuerdo con la variable exportada "en bruto" en las exportaciones. Considere el siguiente código (tomado del artículo de referencia a continuación):
//------ lib.js ------
export let counter = 3;
export function incCounter() {
counter++;
}
//------ main1.js ------
import { counter, incCounter } from './lib';
// The imported value `counter` is live
console.log(counter); // 3
incCounter();
console.log(counter); // 4
// The imported value can’t be changed
counter++; // TypeError
Como puede ver, la diferencia realmente radica en lib.js
, no main1.js
.
Para resumir:
import
variables a, sin importar cómo declare las variables correspondientes en el módulo.let
-vs- tradicional se const
aplica a la variable declarada en el módulo.
const
, no se puede reasignar o rebotar en ningún lado.let
, solo se puede reasignar en el módulo (pero no el usuario). Si se cambia, la import
variable -ed cambia en consecuencia.
export
detalles de palabras clave aquí . Actualmente no es compatible de forma nativa con ninguno de los navegadores web.