export和export default的区别

export导出一个变量值,用 import {} 接收

  api/request.js

  utils/utils.js

 

export default导出一个对象,对象中有属性和方法,用 import 变量名 接收,再用对象.属性、对象.方法

  api/index.js

  utils/localStorage.js

  utils/request.js

  组件的导出也是用export default导出,接收时用一个变量接收

 

一、如果是a.js这种一个一个地导出,

 

 

那么在导入的时候可以通过as重命名,aaa是一个Module对象,包含了a中的属性和方法:

import * as aaa from './utils/a'

通过aaa.name和aaa.add()调用

也可以通过解构赋值的形式:

import { name, add } from './utils/a'

可以直接使用name和add()

 

二、如果是b.js这种放在一起导出

 

 

在导入的时候和a.js一样,导入为bbb模块:

import * as bbb from './utils/b'

通过bbb.name和bbb.add()调用

也可以通过解构赋值的方式:

import { name, add } from './utils/b'

可以直接使用name和add()

 

三、export default的方式导出

 

 

可以通过 * as xx 的方式导入:

import * as ccc from './utils/c'

通过ccc.default.name和ccc.default.add()调用

通过解构赋值的形式:

import { default as ccc } from './utils/c'

通过ccc.name和ccc.add()调用

简便形式导入:

import ccc from './utils/c'

这种方式和 import { default as ccc } from './utils/c' 的效果一模一样,通过ccc.name和ccc.add()调用,但是只能导入 export default {} 这种形式的模块

 

总结:

1、a和b其实是同一种导出方式,一般是导出某个工具的api或者接口api,一般使用解构赋值的形式导入

  export { getToken, add }    import { getToken, add } from 'xx/utils.js'

  export const getList = () => {}    import { getList } from 'xx/api.js'

2、c这种方式一般用于导出一个对象,可能是路由(router)、axios、mixin、,一般使用简易形式导入

  export default router    import router from 'xx/router.js'

  export default axios     import axios from 'xx/axios.js'

  export default mixin     import mixin from 'xx/mixin.js'

 

posted @   吴小明-  阅读(478)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
点击右上角即可分享
微信分享提示