es6 模块export/import/require用法总结

190 阅读1分钟

先说一下理解思路

  • 如果你要导出多个东西,必须用具名导出 ,不然人家怎么知道哪个是哪个呢?
  • 如果你只导出一个东西,那你即可具名导出,也可以不具名导出

具名导出也就是export {xxx,yyy,zzz}

const model='111'
export {model}

具名导入

  • require
const {model} = require('@/model.js'); // 导入具名变量 方式1  
const {model as anyName} = require('@/model.js'); // 名字很容易重合的,于是起个别名
const anyName = require('@/model.js').model; // 导入具名变量 方式2
  • import
import {model} from '@/model.js'; // 导入具名变量
import {model as anyName} from '@/model.js'; // 导入具名变量
// 名字很容易重合的,于是起个别名

不具名导出也就是 export default xxx , 一个模块也只能不具名导出一次

const model='111'
export default model

不具名导入

  • require
const anyName = require('@/model.js').default; // 导入不具名变量  !!! 注意这里有default!
  • import
import anyName from '@/model.js'// 导入不具名变量

可以出现多个export 但最多只能有一个export default

由于es6模块是静态加载的,因此import和export不能出现在判断等动态语句中

动态导入import() 能够实现懒加载


在线示例在此