export 和 import 都属于 ES6 的内容。
node 的 module 遵循的是 CommonJS规范,requirejs遵循AMD,seajs遵循CMD,虽各有不同,
但总之还是希望保持较为统一的代码风格。
ES6发布的 module 并没有直接采用 CommonJS,甚至连 require 都没有采用,也就是说 require
仍然只是 node 的一个私有的全局方法, module.exports 也只是 node 私有的一个全局变量属性,
跟标准半毛钱关系都没有。
export 与 export default 区别:
1. 使用export导出的话,必须使用 { } 来接收。
2. 一个文件中,可以有很多个 export, 但只能有一个 export default。
示例:
demo1.js :
export let A = 123; export function test() { console.log('test'); } export class Hello { test () { console.log('class'); } }
demo2.js:
import { A, test, Hello} from './demo1'
console.log(A, test, Hello);
需要哪一项,就拿哪一项,
import {A} from './demo1';
console.log(A);
导出别名
import * as lesson from './demo1';
console.log(lesson.A,lesson.test); //lesson是个对象
另外一种写法:(推荐这种写法)
demo1.js:
let A = 123; let test = function () { console.log('test'); } class Hello{ test () { console.log('class'); } } export default { A, test, Hello }
demo2.js:
import lesson from './demo1'; //lesson可以写任何名称
console.log(lesson.A)