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)