共计 1214 个字符,预计需要花费 4 分钟才能阅读完成。
一、module.exports 与 exports
-
nodeJS
采用commonJs
规范,当前文件是一个模块(module)
私有域,通过exports
属性导出,通过require()
引入模块,通过.xx 去获取值,从而了解到加载某个模块,其实是加载该模块的exports
属性 -
exports
是module.exports
的别名,不要在同一个文件内同时使用两个,否则只能获取到module.exports
的值
exports 导出
// example.js | |
module.exports.a = '111'; | |
module.exports.fun= function() {} | |
// 或者写成对象形式 | |
module.exports = { | |
a : '111', | |
fun: function(){} | |
} |
require 加载
let test = require('./example.js') | |
console.log(test.a) | |
console.log(test.fun); |
二、module.export/export default{}
- ES6 中的模块功能主要由两个命令构成:
export
和import
。export
命令用于规定模块的对外接口,import
命令用于输入其他模块提供的功能。 -
export
命令规定的是对外的接口,必须与模块内部的变量建立一一对应关系。意思是导出的不是一个具体的数值,而是一个对象{a: 1, b: function(){}}
-
import
命令接受一对大括号,里面指定要从其他模块导入的变量名。大括号里面的变量名,必须与被导入模块(profile.js
)对外接口的名称相同。因此,import {}
中的变量名是export {}
的key
值 -
import
命令输入的变量都是只读的,因为它的本质是输入接口。因此,模块导出的值,只能获取,不可以修改
export 导出
//example2.js | |
// 1. 直接导出某个变量或函数 | |
export const a = 1; | |
export function fun() {} | |
// 2. 先定义变量或者函数,再进行导出 | |
const a = 1; | |
export {a}; | |
function fun() {} | |
export {fun}; | |
// 3. 加别名进行导出 | |
const a = 1; | |
export {a as b} // b 是 a 的别名 | |
// 4. export default | |
注意,一个文件只能有一个 default,这代表是模块的整体输出 |
import 导入
// 1. 常规导入 | |
import {a, fun} from 'example2.js' | |
// 2. 别名导入 | |
import {a as b} from ... | |
// 3. * 导入整个模块 | |
import * as b from ... | |
// 4. 前三种是 module.export,此处是 export default | |
import b from ... | |
console.log(a) | |
console.log(fun()) |
补充:export
与 import
可复合书写,如果在一个模块之中,先输入后输出,不做任何操作export {} from ''
正文完
发表至: javascript
2019-06-05