Cet article vous apporte une introduction (explication détaillée) sur l'exportation et l'importation du module JavaScript. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
J'ai récemment examiné certains programmes écrits dans le framework Vue et j'ai découvert que mes connaissances front-end étaient encore d'il y a quelques années. J'ai découvert qu'il existe maintenant diverses importations de modules dans les programmes Javascript. le importations C'est très similaire à la syntaxe de python, sauf que les deux mots-clés from et import sont utilisés dans l'ordre inverse. Si vous regardez attentivement, le module d'importation est assez différent de Python. Le principe est que le module a des exportations, et il est également divisé en exportations par défaut et en exportations nommées, ce qui est un peu gênant. L’article d’aujourd’hui résume donc toutes les formes d’exportation et les utilisations d’importation correspondantes.
ES6 implémente les fonctions du module au niveau des standards du langage et devient une solution de module universelle pour les navigateurs et les serveurs. Il peut remplacer complètement les spécifications CommonJS et AMD. Les fonctionnalités de base sont les suivantes :
Chaque module n'est chargé qu'une seule fois, et chaque JS n'est exécuté qu'une seule fois. Si vous chargez le même fichier dans le même répertoire la prochaine fois, il sera lu directement depuis la mémoire
var year = '2018'; var month = 'Febuary'; export {year, month};
Exportation nommée (exportation de nom) et Exportation par défaut (exportation de définition) Chaque module peut avoir plusieurs exportations nommées, tandis que chaque exportation par défaut n'a qu'un seul module.
Exportation nommée Le module peut déclarer des objets d'exportation via le mot-clé de préfixe d'exportation, et il peut y avoir plusieurs objets d'exportation. Ces objets d'export se distinguent par des noms, qui sont appelés exports nommésexport { func }; // 导出一个已定义的函数func export const foo = Math.sqrt(100); // 导出一个常量
export * from 'base_module';
var name = 'Kevin的居酒屋'; var domain = 'http://coffee.toast.com'; export {name, domain}; // 相当于导出{name:name,domain:domain}
export {name as siteName, domain}
export 1; var a = 100; export a;
Bien que cela semble vrai, la valeur de a est un nombre, et la déconstruction ne peut pas du tout être terminée, donc. il doit être écrit sous la forme export a
. Même si a est affecté à une fonction, il n'est pas recommandé d'utiliser le formulaire ci-dessus pour exporter car la plupart des styles suggèrent qu'il est préférable d'utiliser un export à la fin du module pour exporter toutes les interfaces, tout comme les exemples ci-dessus. export {a}
export default function() {}; // 导出一个函数 export default class(){}; // 导出一个类
const D = 123; export default D; export { D as default };
// "my-module.js" 模块 function cube(x) { return x * x * x; } const foo = Math.PI + Math.SQRT2; export { cube, foo };
import { cube, foo } from 'my-module'; console.log(cube(3)); console.log(foo);
// "my-module.js"模块 export default function (x) { return x * x * x; }
import cube from 'my-module'; console.log(cube(3)); // 27
Remarque : L'importation doit être placée au début du fichier, et aucun autre code logique n'est autorisé devant. Ceci est cohérent avec le style d'importation de. tous les autres langages de programmation.
Importation nomméeNous pouvons insérer des membres importés dans la portée actuelle en spécifiant un nom. Vous pouvez importer un seul membre ou plusieurs membres :Notez que les variables entre accolades correspondent aux variables après export
import {myMember} from "my-module"; import {foo, bar} from "my-module";
通过*符号,我们可以导入模块中的全部属性和方法。当导入模块全部导出内容时,就是将导出模块(’my-module.js’)所有的导出绑定内容,插入到当前模块(’myModule’)的作用域中:
import * as myModule from "my-module";
在模块导出时,可能会存在默认导出。同样的,在导入时可以使用import指令导入这些默认值。直接导入默认值:
import defaultName from "my-module"; import myDefault, {foo, bar} from "my-module"; // 指定成员导入和默认导入
// my-module.js export default function() {} // 等效于: function func() {}; export {func as default};
在import的时候,可以这样用:
import a from './my-module'; // 等效于,或者说就是下面这种写法的简写 import {default as a} from './my-module';
这个语法糖的好处就是import的时候,可以省去{}。
简单的说,如果import的时候,你发现某个变量没有花括号括起来(没有*号),那么你在脑海中应该把它还原成有花括号的{default as ...}语法,所以import $,{each,map} from 'jquery';import后面第一个$是{default as $}的替代写法。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!