Digamos que tenho uma variável que desejo exportar. Qual é a diferença entre
export const a = 1;
vs
export let a = 1;
Entendo a diferença entre const
e let
, mas quando você as exporta, quais são as diferenças?
Digamos que tenho uma variável que desejo exportar. Qual é a diferença entre
export const a = 1;
vs
export let a = 1;
Entendo a diferença entre const
e let
, mas quando você as exporta, quais são as diferenças?
export
detalhes da palavra-chave aqui . Atualmente, ele não é suportado nativamente por nenhum navegador da web.Respostas:
No ES6,
import
s são visualizações somente leitura ao vivo em valores exportados. Como resultado, quando você o fizerimport a from "somemodule";
, não poderá atribuir aa
você, independentemente de como você declaraa
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):
Como você pode ver, a diferença realmente reside
lib.js
, nãomain1.js
.Para resumir:
import
variáveis a -ed, não importa como você declara as variáveis correspondentes no módulo.let
-vs- tradicionalconst
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, aimport
variável -ed será alterada de acordo.Referência: http://exploringjs.com/es6/ch_modules.html#leanpub-auto-in-es6-imports-are-live-read-only-views-on-exported-values
fonte
Acho que depois de importá-lo, o comportamento é o mesmo (no lugar em que sua variável será usada fora do arquivo de origem).
A única diferença seria se você tentar reatribuí-lo antes do final deste mesmo arquivo.
fonte