module.exports 和 exports , export defult 和 export 之间的区别!!!
首选理解一下Commonjs模块标准 和 ES6模块标准
Commonjs模块标准
- Node利用是由模块形成的,采纳的是Commonjs标准。
- Commonjs标准=> 每个文件就是一个模块,每个模块都有本人的作用域,文件外面的变量、函数等都是公有的,对外不可见的。
module
就是代表这个模块,exports
就是对外的接口,加载模块,就是加载module.exports
属性。exports
其实也是module.exports
,相当于在模块上增加const exports = module.exports
应用
require
进行导入模块module.exports = xxxexport.xxx = xxx
- 留神:对于类的到处要应用
module.exports = xxx
不能应用export.xxx
ES6模块
- 在创立js文件的时候,
export
语句用于从文件(模块)中,导出实时绑定的函数、对象或者是值。 导出的形式
默认导出
export defult xxx // 导出变量export defult function // 导出 函数export defult Class // 导出 类
命名导出
export { xxx }
导入
导入的时候,如果是默认导入,
import { xxx } from '..'import {xx as xxx} from '..'
留神: 默认导出的话,在导入的时候引入的变量名,能够不雷同
//x.jsexport defult let a = 3// y.jsimport { b } from './x.js'console.log(b) // 3
- 在创立js文件的时候,