export 与 export default

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)

你可能感兴趣的:(javascript)