当前位置: 首页 > 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';
http://www.xdnf.cn/news/617887.html

相关文章:

  • [Asp.Net]GridView导出Excel长数字显示成科学计数
  • Spring Boot 项目多数据源配置【dynamic datasource】
  • C++进阶--c++11(02)
  • 【算法】: 前缀和算法(利用o(1)的时间复杂度快速求区间和)
  • 全球复合铁路枕木市场深度分析:技术革新与区域增长潜力(2024-2031)
  • IIS部署微信支付模块问题
  • 欧拉公式的历史脉络、数学证明和现代意义
  • 信息学奥赛及各种程序设计竞赛中常见的名词解释
  • Android四大组件学习总结
  • PyQt学习系列07-数据库操作与ORM集成
  • JavaMail的使用
  • 重读《人件》Peopleware -(12-1)Ⅱ 办公环境 Ⅴ 大脑时间与身体时间(上)
  • 超简单 FishSpeech 本地部署
  • 【游戏设计】游戏玩法与游戏机制
  • 决策树引导:如何选择最适合你的机器学习算法
  • 文章记单词 | 第110篇(六级)
  • Java 8 Lambda 表达式使用说明与案例
  • 前端测试简介
  • Python排序函数全面指南:从基础到高级
  • 字符编码详解:ASCII、Latin1、Unicode、UTF-8 与 GBK
  • 365打卡第N1周: one-hot编码案例
  • 【数据反哺运营】用Python构建可落地的商品结构分析方法论-某朴超市
  • 【风控】申请评分卡(A卡)模型
  • QString 写时拷贝简介
  • 2025年电工杯B题思路讲解问题一四种算法
  • Java 集合框架核心知识点全解析:从入门到高频面试题(含 JDK 源码剖析)
  • 解决:dpkg: error: dpkg frontend lock is locked by another process
  • Coze工作流-变量聚合模块的应用
  • IEEE 流程
  • OSS对象存储如何避免被攻击恶意刷流量?