ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JavaScript 模块导入导出

2021-09-16 14:00:07  阅读:147  来源: 互联网

标签:JavaScript 导出 module 导入 export 模块 mjs import


1.分别导出

export const learn = 'javaScript 模块化'
export function modulesLearn() {
    return learn + '学习'
}

2.一个更方便的方法导出所有你想要导出的模块的方法是在模块文件的末尾使用一个export 语句
语句是用花括号括起来的用逗号分割的列表

export { fan, name }

3.默认导出 export default

4.重命名导入
在你的 import 和 export 语句的大括号中,
可以使用 as 关键字跟一个新的名字,来改变你在顶级模块中将要使用的功能的标识名字。
导出重新命名

export {
    function1 as newFunctionName,
    function2 as anotherNewFunctionName
  };

  // inside main.mjs
  import { newFunctionName, anotherNewFunctionName } from '/modules/module.mjs';

导入重新命名

inside module.mjs
export { function1, function2 };

// inside main.mjs
import { function1 as newFunctionName,
         function2 as anotherNewFunctionName } from '/modules/module.mjs';

5.导入整个模块(前提5.1)
导入每一个模块功能到一个模块功能对象上。可以使用以下语法形式:

import * as Module from '/modules/module.mjs';

这将获取module.mjs中所有可用的导出, 并使它们可以作为对象模块的成员使用, 从而有效地为其提供自己的命名空间。

Module.function1()
Module.function2()

5.1 导出必须是对象形式

export { name, draw, reportArea, reportPerimeter }

6.合并模块(合并子模块)

6.1:导入模块x.mjs,然后重新导出部分或全部导出
export * from ‘x.mjs’

6.2:子模块导出
export { Square };
父模块导入
import { Square } from './modules/square.mjs';
单行导入父模块
import { Square, Circle, Triangle } from './modules/shapes.mjs';

7.动态加载模块
浏览器中可用的JavaScript模块功能的最新部分是动态模块加载。
这允许您仅在需要时动态加载模块,而不必预先加载所有模块。

允许您将import()作为函数调用,将其作为参数传递给模块的路径。
它返回一个 promise,它用一个模块对象来实现,让你可以访问该对象的导出,

import('/modules/myModule.mjs')
  .then((module) => {
Do something with the module.
  });

由于promise履行会返回一个模块对象,因此该类成为对象的子特征,因此我们现在需要使用 Module访问构造函数。
在它之前,例如 Module.Square( … )。

end;
长风破浪会有时,直挂云帆济沧海;

标签:JavaScript,导出,module,导入,export,模块,mjs,import
来源: https://blog.csdn.net/weixin_46172421/article/details/120327323

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有