Réponses:
Dans ES6, les import
s sont des vues en lecture seule en direct sur les valeurs exportées. Par conséquent, lorsque vous le faites import a from "somemodule";
, vous ne pouvez pas affecter à a
quelle que soit la façon dont vous déclarez a
dans le module.
Cependant, comme les variables importées sont des vues en direct , elles changent en fonction de la variable exportée «brute» dans les exportations. Considérez le code suivant (emprunté à l'article de référence ci-dessous):
//------ 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
Comme vous pouvez le voir, la différence réside vraiment dans lib.js
, non main1.js
.
Résumer:
import
variables -ed, quelle que soit la manière dont vous déclarez les variables correspondantes dans le module.let
-vs- const
s'applique à la variable déclarée dans le module.
const
, elle ne peut pas être réaffectée ou rebondie nulle part.let
, elle ne peut être réaffectée que dans le module (mais pas l'utilisateur). Si elle est modifiée, la import
variable -ed change en conséquence.
export
détails du mot-clé ici . Actuellement, il n'est pris en charge de manière native par aucun des navigateurs Web.