Powiedzmy, że mam zmienną, którą chcę wyeksportować. Jaka jest różnica pomiędzy
export const a = 1;
vs
export let a = 1;
Rozumiem różnicę między const
i let
, ale kiedy je eksportujesz, jakie są różnice?
Powiedzmy, że mam zmienną, którą chcę wyeksportować. Jaka jest różnica pomiędzy
export const a = 1;
vs
export let a = 1;
Rozumiem różnicę między const
i let
, ale kiedy je eksportujesz, jakie są różnice?
export
szczegóły słowa kluczowego tutaj . Obecnie żadna z przeglądarek internetowych nie obsługuje tego natywnie.Odpowiedzi:
W ES6
import
są to widoki na żywo tylko do odczytu wyeksportowanych wartości. W rezultacie, kiedy to zrobiszimport a from "somemodule";
, nie możesz przypisać doa
bez względu na to, jak zadeklarujesza
w module.Ponieważ jednak zaimportowane zmienne są podglądami na żywo , zmieniają się one zgodnie z „surową” eksportowaną zmienną w eksporcie. Rozważ następujący kod (zapożyczony z artykułu referencyjnego poniżej):
Jak widać, różnica naprawdę polega na tym
lib.js
, że niemain1.js
.Podsumowując:
import
zmiennych przypisanych , niezależnie od tego, jak zadeklarujesz odpowiednie zmienne w module.let
-vs-const
dotyczy zadeklarowanej zmiennej w module.const
, nigdzie nie można jej ponownie przypisać ani powrócić.let
, można ją ponownie przypisać tylko w module (ale nie użytkownikowi). Jeśli zostanie zmieniony,import
zmienna -ed odpowiednio się zmieni.Źródła: http://exploringjs.com/es6/ch_modules.html#leanpub-auto-in-es6-imports-are-live-read-only-views-on-exported-values
źródło
Myślę, że po zaimportowaniu zachowanie jest takie samo (w miejscu, w którym zmienna będzie używana poza plikiem źródłowym).
Jedyną różnicą byłaby próba ponownego przypisania go przed końcem tego samego pliku.
źródło