Toc
  1. export和export default:
    1. export命名导出(每个模块包含任意数量):
    2. import语句使用命名导出:
    3. export default默认导出(每个模块包含一个):
  2. exports和module.exports:
    1. exports导出(每个模块包含任意数量):
    2. require语句使用导出:
    3. module.exports导出(每个模块包含一个):
    4. require语句使用导出:
  3. 总结
Toc
0 results found
Ihuzb
JS中模块的暴露和引入方式

export和export default:

  • 在创建JavaScript模块时,export 语句用于从模块中导出函数、对象或原始值,以便其他程序可以通过import语句使用它们。
  • 能够在每一个模块中定义多个export 命名导出,但是只允许有一个export default 默认导出。

export命名导出(每个模块包含任意数量):

//my-module.js

//导出列表
let a = 1, b = 2;
export {a, b}

// 导出单个特性
export let name1, name2;
export let name1 = 1, name2 = 2;
export function FunctionName(){...}
export class ClassName {...}

//重命名导出
export {a as aa,b as bb};

// 解构导出并重命名
export const { name1, name2: bar } = o;

import语句使用命名导出:

import { a, b,FunctionName } from 'my-module.js';

export default默认导出(每个模块包含一个):

//my-module.js

// 默认导出
export default expression;
export default function () { … }
export default function nameInfo() { … }
export { name1 as default, … };
  • 更多详细信息可查询这里官方文档

exports和module.exports:

  • exports允许使用快捷方式,因此module.exports.f = ...可以更简洁地写成exports.f = ...。但是,就像任何变量一样,如果为exports赋予了新值,则它将不再绑定到module.exports
  • 能够在每一个模块中定义多个exports导出,但是只允许有一个module.exports导出。

exports导出(每个模块包含任意数量):

//my-module.js

//导出多个方法和变量
let a = 1, b = 2;
exports.a = a;
exports.b = b;
exports.FunctionName = () => {
console.log(123)
};
console.log(exports);//{ a: 1, b: 2, FunctionName: [Function] }

require语句使用导出:

const {a, b, FunctionName} = require('./my-module');//可直接解构
console.log(a, b);//1 2
FunctionName();//123

module.exports导出(每个模块包含一个):

//my-module.js

//导出多个方法和变量
let FunctionName = () => {
console.log(123)
};
let a = 1, b = 2;
module.exports = {a, b, FunctionName};
console.log(module.exports);//{ a: 1, b: 2, FunctionName: [Function: FunctionName] }

require语句使用导出:

const {a, b, FunctionName} = require('./my-module');// 可直接解构
console.log(a, b);//1 2
FunctionName();//123
  • 更多详细信息可查询这里官方文档

总结

  • exportexport default使用import导入。
  • exportsmodule.exports使用require导入。常用的Nodejs项目中。
  • exportexports在模块中可使用多个。
  • export defaultmodule.exports在模块中只可使用一个。
本文作者:Ihuzb
版权声明:本文首发于Ihuzb的博客,转载请注明出处!