export default 和 export
ES6 使用 export 和 import 來導出、導入模塊
export default
可以使用自己默認定義的命名,優雅好看,但是單個文件只可默認暴露一次數據
- fun.js
let a = {
name: 'bob'
}
export default a
- main.js
import obj from './fun'
console.log(obj)// {name: "bob"}
export
每次接收都需要按指定的命名暴露,但是單個文件可暴露多組數據
- fun.js
export let a = {
name: 'bob'
}
export let b = {
name: 'lucy'
}
- main.js
import { a, b } from './fun'
console.log(a)// {name: "bob"}
console.log(b)// {name: "lucy"}
當不想按指定的命名暴露,可用
- fun.js
export let a = {
name: 'bob'
}
export let b = {
name: 'lucy'
}
- main.js
import * as cc from './fun'
console.log(cc.a, cc.b)// {name: "bob"} {name: "lucy"}
module.exports 和 exports
Node 應用由模塊組成,採用 CommonJS 模塊規範,暴露數據的方式,爲了你方便,在每一個模塊中都提供了一個成員叫:exports
console.log(exports === module.exports)// true
module.exports
- fun.js
let a = {
a: 123,
b: 456,
c: 789
}
module.exports = a
- main.js
let a = require('./fun')
console.log(a)// { a: 123, b: 456, c: 789 }
exports
- fun.js
let a = {
a: 123,
b: 456,
c: 789
}
exports.obj = a
- main.js
let a = require('./cc2')
console.log(a)// { obj: { a: 123, b: 456, c: 789 } }
而實際用的時候:
- 導出多個成員:
exports.xxx = xxx
- 導出多個成員也可以:
module.exports = { a:xxx, b:xxx }
- 導出單個成員:
module.exports = 'hello'
注意:如果實在分不清 exports 和 module.exports,那就選擇忘記 exports,而只使用 module.exports 也沒問題