当前位置: 首页 > news >正文

【JS】vue3具名导出与默认导出

为什么ajaxFun一定要用大括号,不用就报错。而service不需要打括号。

import service from '@/utils/request'
import {ajaxFun} from "@/utils/common"

这一差异源于 JavaScript 中不同的模块导出和导入方式,下面为你详细解释。

具名导出与默认导出
在 JavaScript ES6 模块系统里,有具名导出和默认导出两种常见的导出方式,不同的导出方式对应不同的导入方式。

  1. 默认导出(service 的情况)
    在 @/utils/request 文件中,使用了默认导出语法。默认导出意味着一个模块只能有一个默认导出项,在导入时可以用任意名称接收这个导出项。示例如下:

request.js 文件(导出部分)

import axios from 'axios';
const service = axios.create({baseURL: xxx,timeout: 5000
});// 默认导出 service
export default service;

shop.js 文件(导入部分)

// 直接导入默认导出项,可自定义名称,这里用 service
import service from '@/utils/request';
  1. 具名导出(ajaxFun 的情况)
    在 @/utils/common 文件中,使用了具名导出语法。具名导出允许一个模块导出多个项,每个导出项都有对应的名称,在导入时需要使用相同的名称,并且用大括号包裹。示例如下:

common.js 文件(导出部分)

// 具名导出 ajaxFun 函数
export function ajaxFun(obj) {try {var formData = new FormData();Object.keys(obj.data).forEach(item => {formData.append(item, obj.data[item]);});return axios({method: obj.method,url: import.meta.env.VITE_BASE_API + obj.url,headers: {'Content-Type': 'multipart/form-data','token': window.localStorage.getItem('token'),},data: formData,});} catch (error) {console.error('ajaxFun函数出错:', error);return Promise.reject(error);}
}

shop.js 文件(导入部分)

// 使用大括号导入具名导出的 ajaxFun 函数
import { ajaxFun } from '@/utils/common';

总结

service 采用默认导出,所以导入时不用大括号,且能自定义导入名称。
ajaxFun 采用具名导出,导入时必须用大括号,并且使用和导出时相同的名称。
若要让 ajaxFun 导入时不用大括号,可将 common.js 里的具名导出改为默认导出:

common.js 文件(修改为默认导出)

function ajaxFun(obj) {// ... 已有代码 ...
}// 默认导出 ajaxFun 函数
export default ajaxFun;

shop.js 文件(修改后的导入方式)

// 不用大括号导入默认导出的 ajaxFun 函数
import ajaxFun from '@/utils/common';

相关文章:

  • 人工智能在优化算法与大规模求解器中的应用与发展
  • 【论文阅读】Stop Overthinking:高效大模型推理技术综述
  • 详解Mysql的 Binlog、UndoLog 和 RedoLog
  • 交换机的连接方式堆叠和级联
  • Python 脚本执行命令的深度探索:方法、示例与最佳实践
  • day34 python深度学习训练优化实践:CPU vs GPU
  • 南门岗,15号楼俩电梯一片监控掉线,
  • python学习打卡day34
  • 纺线机与PLC通讯故障?ETHERCAT/CANopen网关秒解协议难题
  • 高项公式英文解析记忆
  • Open CASCADE学习|非线性方程组求解技术详解
  • 【Linux cmd】查找进程信息
  • 无人机开启未来配送新篇章
  • 解构赋值与剩余参数:语法特性背后的思考
  • 制作一款打飞机游戏55:扩散
  • SAP在金属行业的数字化转型:无锡哲讯科技的智能解决方案
  • 二维空间几何图形​​处理库.GEOS几何库.
  • 农业机械化、电气化和自动化知网英文普刊:1天录用,2周见刊发表!
  • PyTorch中TensorBoardX模块与torch.utils.tensorboard模块的对比分析
  • 文章记单词 | 第109篇(六级)
  • 鞋子网站模板/北京线上教学
  • 怎么做类似淘宝一样的网站/网站宣传推广方案
  • 泰国清迈房产网站大全/百度推广一天费用200
  • 青岛微网站/域名ip查询查网址
  • asp网站建设/推广网站的文案
  • 原创 网站 源码/优化网站怎么做