export、default.export、module.export

运行时加载(commonJS)

let {state,exists,readFile} =require('fs')
实质:加载整个fs模块,生成一个对象,然后再从这个对象上读取3个方法。

编译时加载(静态加载)(ES6)

import {stat,exits,readFile} from 'fs';
实质:从fs模块加载3个方法,其他方法不加载。

模块(export、import)

模块:一个模块就是一个对立文件,该文件内部的所有变量,外部无法获取。
export:关键字输出该变量,使得外部可以获取某个变量
import:加载某个模块里的变量

// test.js
export var test="merry"
// main.js
import{test} from './test.js'

export default

使用import命令时,需要知道加载的变量名等,否则无法加载;为了方便,使用export default命令,为模块指定默认输出。
eg:

export default function(){
}

import customName from './export-default'

加载模块时,可以使用任意名称指向上面输入的方法。

使用了default export 对应的import语句不需要

import()函数

适用场景
1.按需加载
2.条件加载
3.动态的模块路径

ES6模块加载CommonJS模块

CommonJS模块的输出都定义在module.exports这个属性上。Node的impor命令加载CommonJS模块,Node会自动将module.exports属性,当作模块的默认输出。即等同于export default xxx

module.exports={
test:"merry"
}
// 等同于
export default{
test:"merry"
}

CommonJS模块加载ES6模块

CommonJS模块加载ES6模块,不能使用require命令,而要使用import()函数。

相关链接:
CommonJS规范,http://javascript.ruanyifeng.com/nodejs/module.html
ES6 Module 的语法,http://es6.ruanyifeng.com/#docs/module

你可能感兴趣的:(export、default.export、module.export)