export和exportdefault、module.exports是用来导出常量、函数、文件、模块的。
export | exportdefault | module.exports | |
来源 | es6(esm) | es6(esm) | commonjs的规范(smj) |
单文件存在个数 | 多个 | 1个 | 1个 |
导入方式 | import {} | import +名称 | import、require |
esm和cmj主要区别
① CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用。
② CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。
一、export一般导出方法,引入使用的时候要使用大括号按需引入需要的方法
//util.js文件
// 排序
export function sortUnitType(prop) {
return function (obj1, obj2) {
var val1 = obj1[prop]
var val2 = obj2[prop]
if (!isNaN(Number(val1)) && !isNaN(Number(val2))) {
val1 = Number(val1)
val2 = Number(val2)
}
if (val1 > val2) {
return -1
} else if (val1 < val2) {
return 1
} else {
return 0
}
}
}
//其他文件调用方式
import { sortUnitType } from '@/utils/util'
二、export default导出对象或者数组,但是引用的时候会整体引入
//socket.js文件
export default class WebSocketClass {}
//在其他文件使用引用方式
import WebSocket from '@/utils/socket'
一个文件中export可以有多个,但是export default只有一个
三、module.exports
module.exports一般导出对象,可以使用import或者require整体引入或者按需引入(import只能在js文件顶部,require可以在任何位置)
//colors.js文件
function getAntdColors (){}
module.exports = {
getAntdColors,
}
//其他文件引入
const {getAntdColors} = require('../utils/colors')