CommonJS模版規範
CommonJS
node採用CommonJS模塊規範;
有自己的作用域,一個文件裏的變量,函數,類都是私有的;
CommonJS的每個模版內部的module對象的exports屬性是對外的接口,加載模版本質是加載該模版的module.exports屬性;
輸入的是輸出值的拷貝/複製。
require方法用於加載該模版;
//導出
var exports = module.exports;
exports.name = "15";
//導入
var example = require('./example.js')
example.name//爲15
ES6模版規範
ES6
babel,js等工具將ES6規範編譯成CommonJS規範;
使用export和import來導入導出模版;
export,export default都是導出常量,函數,文件,模版等,通過inport引入使用;
在一個文件或者模版中,export,import可以有多個;
但是export default僅有一個,和多個export同時存在;
通過export導出時,導入時候需要加{},而export default不需要,不需要知道加載的模版變量名;
let yo = "Muhaha"
export default yo
//導出 yo.js
function yo(){
alert(x+y)
}
export default yo
//導入
import yo from './yo'
yo(1,1)//爲2
本質是,輸出一個default的變量,系統可以任意命名它;
如果是函數:
//導出 yo.js
function yo(x,y){
alert(x+y)
}
export {yo}
//導人
import {yo} from './yo.js'
yo(1,1)//彈出2
CMD規範是sea.js推崇的規範,就近依賴;
AMD規範,依賴前置;
都是異步加載,AMD會立即加載,CMD當使用時候才加載;