一炉峰、使用范圍
export/export default/ import: 只有es6 支持的導(dǎo)出引入
module.exports / exports: 只有 node 支持的導(dǎo)出
require: node 和 es6 都支持的引入
二畏妖、es6中模塊的導(dǎo)入導(dǎo)出
export 和 export default的區(qū)別:
1、export與export default均可用于導(dǎo)出常量疼阔、函數(shù)戒劫、文件、模塊等婆廊。
2迅细、在一個文件或模塊中,export淘邻、import可以有多個茵典,export default僅有一個。
3宾舅、export 適用于導(dǎo)出多個對象统阿,import需要加{}。
4贴浙、export default 適用于導(dǎo)出單個對象砂吞,import可以不加{}。
4崎溃、如果export default是用{}導(dǎo)出對象的蜻直,import都可以加括號對導(dǎo)出的對象進(jìn)行對象解構(gòu)。
export 和 export default代碼示例:
1.export
//a.js
export const a1 = "aaaaa11111";
export function m1(sth) {
return sth;
}
對應(yīng)的導(dǎo)入方式:
//b.js
import { a1, m1 } from 'a'; //導(dǎo)入的時候帶花括號
2.export default
//a.js
const str = "strstrstr";
export default str;
對應(yīng)的導(dǎo)入方式:
//b.js
import str from 'a'; //導(dǎo)入的時候沒有花括號
三、node中的模塊
Node里面的模塊系統(tǒng)遵循的是CommonJS規(guī)范概而。
CommonJS定義的模塊分為: 模塊標(biāo)識(module)呼巷、模塊定義(exports) 、模塊引用(require)
node執(zhí)行文件時赎瑰,會給這個文件內(nèi)生成一個 exports和module對象王悍,module有一個exports屬性。他們之間的關(guān)系:
exports = module.exports = {};餐曼,都指向一塊{}內(nèi)存區(qū)域压储。exports 只是 module.exports的引用,輔助后者添加內(nèi)容用的源譬,盡量都用 module.exports 導(dǎo)出集惋,用require導(dǎo)入。