Respostas:
No ES6, import
s são visualizações somente leitura ao vivo em valores exportados. Como resultado, quando você o fizer import a from "somemodule";
, não poderá atribuir a a
você, independentemente de como você declara a
no módulo.
No entanto, como as variáveis importadas são visualizações ao vivo , elas mudam de acordo com a variável exportada "bruta" nas exportações. Considere o seguinte código (emprestado do artigo de referência abaixo):
//------ 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 você pode ver, a diferença realmente reside lib.js
, não main1.js
.
Para resumir:
import
variáveis a -ed, não importa como você declara as variáveis correspondentes no módulo.let
-vs- tradicional const
se aplica à variável declarada no módulo.
const
, ela não poderá ser reatribuída ou recuperada em nenhum lugar.let
, ela poderá ser reatribuída no módulo (mas não no usuário). Se for alterado, a import
variável -ed será alterada de acordo.
export
detalhes da palavra-chave aqui . Atualmente, ele não é suportado nativamente por nenhum navegador da web.