导入/导出

一、export 导出

export default 是默认导出
export const 是命名导出

module.exports与exports,export与export default之间的关系和区别

Node应用由模块组成,采用CommonJS模块规范。
根据这个规范,每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。
CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。

 

var x = 5;
var addX = function (value) {
  return value + x;
};
module.exports.x = x;
module.exports.addX = addX;

require方法用于加载模块。

 

var example = require('./example.js');
console.log(example.x); // 5
console.log(example.addX(1)); // 6

exports 与 module.exports
为了方便,Node为每个模块提供一个exports变量,指向module.exports。这等同在每个模块头部,有一行这样的命令。

 

var exports = module.exports;

ES6模块规范
不同于CommonJS,ES6使用 export 和 import 来导出、导入模块。

 

// profile.js
var firstName = 'Michael';
var lastName = 'Jackson';
var year = 1958;

export {firstName, lastName, year};

二、import ... form...替代 require()

  1. 基本导入导出

 

// 不接收对象 
require:require('s.css'); //(es5)
improt  's.css' //(es6)
 
// 接收对象
var o = require('s.js'); //es(5)
import o form s.js    //(es6)
  1. 对象的写法:

 

// 导出一个模块对象(es5):
module.exports={
    add:add,
    sub:sub
}
// 导出一个模块对象(es6):
module.exports={
    add,
    sub
}
//  注意:上es6这种写法属性名和属性值变量是同一个,否则要分开写
module.exprots={
    addFn:add,
    sub
}  

  1. 一个对象中方法的写法:

 

// es5
module.exports={
    addFun:function(x,y){
        return x+y;
    }
}
// es6
module.exports={
    addFun(x,y){
        return x+y;
    }
}
  1. 导出对象

 

calc.js中有两个函数:
function add(){}
function sub(){}
 
//写法一
 
es5写法:
module.exports.add = add;
module.exports.sub = sub;
 
es6写法:
exprot function add(){}
exprot function sub(){}
 
使用:
var calc = require('./calc.js');
 
//写法二
es5:
module.exports = {add:add,sub:sub};
es6:
exprot default{
    add,sub
}
//表示取得calc.js中所有暴露出来的对象(es6)
import calc from './calc.js'
//只获取到calc.js中的add方法(按需获取)
import {add} from './calc.js'

  1. 用export 和import 的写法注意点

 

1、如果模块中使用 export default {}
    只能通过 import 对象名称 from '模块路径'
    不能通过 import {对象名称} from '模块路径'
2、如果使用 import {对象名称} from '模块路径' 导出具体某个对象或者方法名称
    
    需要单独导出对象或者方法:
    export function add(){}
    export function sub(){}
 
    使用:
    import {add, sub} from '模块路径'
    直接使用 add,sub方法
 
    注意:不能直接使用    import 对象名称 from '模块路径'

export default 和 export 区别

1、export与export default均可用于导出常量、函数、文件、模块等
2、你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用
3、在一个文件或模块中,export、import可以有多个,export default仅有一个
4、通过export方式导出,在导入时要加{ },export default则不需要

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值