模块化的使用
规范:
- CommonJS(Node.js)
- AMD(Require.js)
- CMD(sea.js)
CommonJS(node.js)
CommonJS 特点:
- 所有模块都有单独的作用域,不会污染全局作用域
- 重复加载模块只会加载第一次,后面都会从缓存中读取
- 模块加载顺序是按照代码中出现的顺序
- 模块加载是同步的
node.js
Node.js 是服务器端 javascript 解释器,允许开发者使用 javascript 语法去编写服务端程序。
Node.js 应用由模块组成,采用 CommonJS 规范,使用全局方法 require 加载模块。
Node.js 搭建一个简单的 HTTP 服务器
var http = requre('http')
var server = http.createServer(function(req, res){
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain')
res.end('Hello world')
})
server.linten(3000, '127.0.0.1', function(){
console.log('server running at http://127.0.0.1')
})
编写一个模块并引用
// moduleA.js
module.exports = function(params) {
console.log(params)
}
// 引入 moduleA.js ,假设两个文件在同意目录下
var moduleA = require('./moduleA')
moduleA()
ES6 标准的模块支持
// car.js
var name = 'bus'
var color = 'blue'
var weight = '20吨'
export { name, color, weight }
// import 引入
import { name, color, weight } from './car'
import { name as busName } from './car' // 使用 as 对模块重命名
import * as car from './car' // 使用 * 加载整个文件,car.name、car.color...
export default:默认导出
// aaa.js
export default function() {
// ...
}
import someName from './aaa'
someName() // 即执行 default 方法