nodejs、es6模块化导入导出

nodejs模块化导入导出

module.exports导入导出

方式一:

//导出
module.exports.a = 'hello';
module.exports.add = function () {
  console.log('add');
}

//导入
let test = require('./a.js')
console.log(test);//{ a: 'hello', add: [Function] }

方式二:
如果使用 module.exports = xxx
只能导出单个成员

//导出
module.exports = 'hello';

//导入
let test = require('./a.js')
console.log(test);//hello
//导出
module.exports = 'hello';

//后者会覆盖前者
module.exports = function () {
  console.log('add');
}

//导入
let test = require('./a.js')
console.log(test);//[Function]

exports导入导出

exports 默认和 module.exports 指向同一个引用

//导出
exports.a = "hello";
exports.add = function () {
  console.log("add");
}

//导入
let test = require('./a.js')
console.log(test);//{ a: 'hello', add: [Function] }

exports 不能使用 exports = xxx 导出成员,
会改变 exports 的指向

//导出
exports = 'hello';

//导入
let test = require('./a.js')
console.log(test);
//{} 结果是是一个空对象

es6 模块化导入导出

按需导出

向外导出: export var a = 10 【按需导出】
向外导出: export var b = 20 【按需导出】
对应的导入方式: import { a, b as vb } from ‘模块路径’ 【按需导入】

用 as 可以重新命名

//导出
export let a = 1;
export let b = new Date();
export let c = [1,2,3];
export let say = function (){
	console.log("嘿嘿嘿")
}
//重命名导出
export {a as a1,b as b1,c as c1,say as s1};

//导入时也要用改过的名字
import {a1,b1,c1,s1} from "./es6-export.js";
console.log(a1,b1,c1,s1);
s1();

默认导出

向外导出: export default (可跟对象,数组,函数等) 【默认导出】
对应的导入方式: import 名称 from ‘模块路径’ 【默认导入】

//导出
export default function (){
	console.log("哈哈哈")
};

//导入
import data from "./es6-export.js";
data();
console.log(data);

也可以用 * 来导入所有成员

import * as e from "./es6-export.js";
console.log(e);

注意

1、export default 向外暴露的成员,可以使用任意变量来接收
2、在一个模块中,export default 只允许向外暴露一次
3、在一个模块中,可以同时使用export default 和export 向外暴露成员
4、使用export向外暴露的成员,只能使用{ }的形式来接收,这种形式,叫做【按需导出】
5、export可以向外暴露多个成员,同时,如果某些成员,在import导入时,不需要,可以不在{ }中定义
6、使用export导出的成员,必须严格按照导出时候的名称,来使用{ }按需接收
7、使用export导出的成员,如果想换个变量名称接收,可以使用as来起别名

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值