js模块的导出和导入主要有两种方式:1. es模块(esm),使用export和import关键字,支持命名导出、默认导出及整体导入,适用于现代浏览器和node.js(需配置.type="module"或使用.mjs扩展名);2. commonjs,使用module.exports和require(),主要用于node.js环境。在浏览器中运行es模块需使用<script type="module">标签或构建工具。默认导出每个模块仅限一个,导入时可自定义名称,适合主功能或类;命名导出可有多个,导入时需用原名或as重命名,适合多个辅助功能。实际开发中可根据需要混合使用两种导出方式,以提高代码组织的清晰度和灵活性。

导出和导入JS模块,简单来说,就是让你在一个JS文件中编写的代码,可以在另一个JS文件中使用。这就像搭积木,把不同功能的积木块组合起来,构建更复杂的应用。
解决方案
JS模块的导出和导入主要有两种方式:ES模块(ESM)和CommonJS。ESM是现代浏览器的标准,而CommonJS则主要用于Node.js环境。
ES模块 (ESM)
导出: 使用
export
export const myVariable = "hello"; export function myFunction() { ... }export default function() { ... }导入: 使用
import
import { myVariable, myFunction } from "./myModule.js";import myDefaultFunction from "./myModule.js";
import * as myModule from "./myModule.js";
myModule
示例:
// myModule.js
export const message = "Hello from myModule!";
export function greet(name) {
return `Hello, ${name}!`;
}
export default class MyClass {
constructor() {
this.value = "Default Value";
}
}
// main.js
import { message, greet } from "./myModule.js";
import MyClass from "./myModule.js";
console.log(message); // 输出: Hello from myModule!
console.log(greet("World")); // 输出: Hello, World!
const myInstance = new MyClass();
console.log(myInstance.value); // 输出: Default ValueCommonJS
导出: 使用
module.exports
exports
本文档主要讲述的是在Android-Studio中导入Vitamio框架;介绍了如何将Vitamio框架以Module的形式添加到自己的项目中使用,这个方法也适合导入其他模块实现步骤。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
0
module.exports = { myVariable, myFunction };exports.myVariable = "hello"; exports.myFunction = function() { ... }导入: 使用
require()
const myModule = require("./myModule.js");myModule.myVariable
myModule.myFunction
示例:
// myModule.js
const message = "Hello from myModule!";
function greet(name) {
return `Hello, ${name}!`;
}
module.exports = {
message: message,
greet: greet
};
// main.js
const myModule = require("./myModule.js");
console.log(myModule.message); // 输出: Hello from myModule!
console.log(myModule.greet("World")); // 输出: Hello, World!这通常是因为浏览器默认不支持直接运行ES模块,你需要使用构建工具(如Webpack, Parcel, Rollup)对代码进行打包,或者在HTML文件中使用
<script type="module">
<!DOCTYPE html> <html> <head> <title>ES Module Example</title> </head> <body> <script type="module" src="main.js"></script> </body> </html>
注意,使用
<script type="module">
.js
从Node.js v13.2开始,已经原生支持ES模块。你可以通过以下两种方式启用ES模块:
.mjs
.mjs
package.json
"type": "module"
.js
{
"name": "my-project",
"version": "1.0.0",
"type": "module",
"dependencies": {
// ...
}
}需要注意的是,一旦启用了ES模块,你就不能再使用
require()
import()
import { createRequire } from 'module';require
主要区别在于导入方式和数量限制。
as
选择哪个取决于你的需求。如果你的模块主要提供一个功能,那么默认导出可能更合适。如果你的模块提供多个功能,那么命名导出可能更清晰。实际上,很多项目会混合使用这两种方式,根据具体情况选择。例如,一个模块可能有一个默认导出的类,以及一些命名导出的辅助函数。
以上就是如何导出和导入JS模块的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号