CommonJS,ES6,CMD,AMD規範

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當使用時候才加載;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章