module.exports 、exports、export、export default的区别

export、export default和module.exports有什么区别 本文对比了 JavaScript 中三种模块导出方式:export、export default(ES6模块)和 module.exports(CommonJS)。核心区别包括:ES6模块是静态的,支持命名导出和默认导出,适合现代项目;CommonJS是动态的,主要用于Node.js环境。文章详细分析了它们的语法规范、用法差异、互操作性及最佳实践,建议根据项目需求选择统一模块系统,避免混用导致的兼容性问题。文中还提供了典型错误示例,帮助开发者规避常见陷阱。 阅读详情

module.exports和exports是属于 CommonJS 模块规范,export和export default是属于ES6语法。

module.exports和exports导出模块,用require引入模块。

export和export default导出模块,import导入模块。
Node应用由模块组成,采用CommonJS模块规范。根据这个规范,每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。

CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。

实例用法:
参考:https://blog.youkuaiyun.com/qq_15589375/article/details/123476690?spm=1001.2014.3001.5502

1.module.exports

2.exports

3.export(ES6)

js:api/index.js

import request from '@/utils/request'
// 获取路由
export const getRouters = () => {
  return request({
    url: '/routers',
    method: 'get'
  })
}

// 获取用户
export const getUser = () => {
  return request({
    url: '/user',
    method: 'get'
  })
}

引入

import { getRouters , getUser } from "@/api/index";

4.export default 默认导出

class User{
  constructor(age,name) {
    // super(socketUrl);
    this.age= age
    this.name= name
    this.init()
  }
  
  init() {
    console.log(1111)
  }
}

export default User

引入:

import MyWebScoket from "@/utils/websocket.js";
保姆级教程:用rosbag录制和回放你的第一个ROS机器人数据(附C++/Python代码) 本文提供了一份详细的ROS机器人数据录制与回放教程,涵盖从命令行操作到C++/Python编程实现的全流程。通过rosbag工具,开发者可以高效记录和回放机器人运行时的传感器数据和控制指令,适用于故障复现、算法调试等多种场景。教程还包含高级技巧如时间同步和大文件处理,帮助用户快速掌握ROS数据管理核心技能。 阅读详情

相关推荐

lerobot VLA--SmolVLA代码的讲解

2.图像resize至正方形224x224,图像长宽比不变,其他区域用黑色补充,标记为mask=1,若占位图像(摄像头缺失),则 创建全-1像素的占位图像 标记为mask=0,image为[1, 3, 512, 512],img_mask为True,masks列表长度为2,img_masks为2,因为我这里两个相机。文本嵌入:通过embed_language_tokens() 被转换为嵌入表示,lang_emb 是语言的嵌入,包含了语言的语法和语义信息。1.像素值[0,1]->[-1,1]

caokaifa的博客 4069

模块化

模块化 遵守固定的规则,把一个大文件拆成独立并互相依赖的多个小模块。 优点: 提高了代码的复用性 提高了代码的可维护性 可以实现按需加载 模块化规范: 降低沟通成本,方便模块间的相互调用 模块作用域: 防止全局变量污染的问题 module.exports 对象 在自定义模块中,可以使用 module.exports 对象,将模块内的成员共享出去,供外界使用。 外界用 require() 方法导入自定义模块时,得到的就是 module.exports 所指向的对象。 ...

qq_41033308的博客 597

做小程序支付时,我是怎么被“虚拟支付”绊了一跤的

微信小程序支付开发中,普通支付与虚拟支付存在本质差异。开发者常误将虚拟权益(会员、点数等)当作普通商品支付,导致审核失败。两者在审核关注点、结算方式、API调用及平台政策上都截然不同。关键点在于:1)先明确交易对象类型;2)产品命名需真实反映权益性质;3)支付成功≠业务完成;4)审核说明要详细描述交付逻辑;5)避免依赖过时规则。正确顺序应是:判断商品属性→选择支付类型→设计订单系统→准备审核材料。这个认知差异比技术实现更重要,提前理解平台规则可大幅减少返工。

zhurizhe71的学习之路 2586

JavaScript模块的导出和导入之export和module.exports的区别

CommonJS规范中,建议尽量都用 module.exports 导出,然后用require导入 ES6规则中,大部分风格建议,模块中最好在末尾用一个export导出所有的接口module.exports / exports: 只有 Node 支持的导出require: Node 和 ES6 都支持的引入export / import : 只有ES6 支持的导出引入。

LlanyW的专栏 9156

【毕设课设】基于YOLO v3与LSTM的水位智能识别系统(附完整源码+数据集)

本文详细介绍了基于YOLO v3与LSTM的水位智能识别系统的完整实现方案。该系统通过YOLO v3精准定位水位尺数字,结合LSTM-OCR进行序列识别,并融合霍夫变换检测刻度线,实现高精度水位自动读取。项目提供了从环境搭建、模型训练到集成部署的全流程指南,并附有完整源码和数据集,是理想的毕设课设实战项目。

php55的博客 609

HDLBits答案汇总

前言 该博客为本人做HDLBits习题时的心得记录总结,欢迎大家一起交流进步。 HDLBits网站链接 Verilog Language Basics Vectors Modules:Hierarchy Procedures More Verilog Features Circuits Combinational Logic Basic gates Multiplexers Arithmetic Circuits Karnaugh Map to Circuit Sequential Logic Latche

谦豫 9万+

(区别、详解、使用)module.exports与exports,export与export default,import 与require

(详解与使用)module.exports与exports,export与export default,import 与require

大雾起了清晨 1万+

AD学习笔记(一)基础认识

文章目录AD学习笔记第一讲 AD基础认识一、两库两图(分别对应下图)1、PCB图(pcbdoc)2、原理图(schdoc)3、原理图库(schlib)4、PCB库(pcblib)二、封装1、DIP封装2、LQFP封装三、绘制整体流程1、建立工程(PrjPcb)2、建立两库两图并保存整个工程(五次)3、从库中提取绘制原理图4、原理图导入pcb图5、根据原理图布线6、pcb图交由工厂打板 AD学习笔记 第一讲 AD基础认识 一、两库两图(分别对应下图) PCB图(pcbdoc) 原理图(schdoc) PCB库

qq_52465473的博客 6686

JS模块导入导出大全——module.exports、exports、export和export default的使用和区别

一、介绍 1.module.exports 和exports是commonjs的规范 2.export 和export default 是es6 规范 3.require 是amd规范引入方式 4.import 是es6 的一个语法标准 二、module.exports 和exports的使用 module 变量代表当前模块,这是个对象,会创建exports的属性,属性的默认值是空对象 //导出使用方法: function add(a,b) { return a+b; }...

qq_53669554的博客 3万+

TenserRt平台SMOKE 3D目标检测部署完整教程:从理论到实践

本教程详细介绍了在RK3588平台上部署SMOKE 3D目标检测模型的完整流程。SMOKE是一种创新的单阶段单目3D检测方法,通过关键点估计直接预测3D目标信息,有效解决了深度信息缺失等挑战。文章从理论基础出发,解析了SMOKE的核心算法和网络架构,包括DLA-34主干网络和关键点中心化策略。同时提供了详细的Docker环境配置、模型导出到ONNX格式的实践指南,以及TensorRT引擎构建和性能优化的关键技术要点。该教程为开发者在嵌入式平台上实现高效3D目标检测提供了完整的技术参考。

LXY_LOVE36的博客 372

深度剖析:Spring AI 与 LangChain4j,谁才是 Java 程序员的 AI 开发利器?

首先介绍 AI 时代 Java 开发框架选择背景,接着对比两者功能特性(Spring AI 的生态集成与标准化设计、LangChain4j 的多模型适配与提示工程)、应用场景(企业级系统改造与创新产品开发)、开发体验(学习成本与调试工具)、生态扩展(Spring 商业支持与 LangChain4j 开源社区)、性能安全(企业级优化与自主安全实现)及成本趋势(短期投入、长期回报与技术演进),最后给出选型建议与混合架构方案。

博客 5446

JavaScript第 30 篇,JavaScript中的export、export default、exports 和 module.exports使用详细

⭐在JavaScript中,export 和 export default 是 ES6 模块系统的核心部分,用于从文件中导出函数、关键字,对象或值,使其可以在其他文件中通过 import 语句导入和使用,而 exports和 module.exports 是CommonJS模块系统的一部分,在 Node.js 环境中,你可以使用 exports 或 module.exports 来导出模块,但这并不是 ES6 标准的一部分。

AI Agent 全栈架构师(AI + GIS + Backend)& 数字芯片系统架构师(FPGA),NorthCity Smile的博客(NcSmile,博主域名:https://ncmile.blog.youkuaiyun.com) 2万+

AIoT 在线工程实训平台案例——智能家居

AIoT 在线工程实训平台案例——智能家居的操作步骤

m0_53608652的博客 1431

export、export default 和 module.exports 的区别详解

export、export default 和 module.exports 的区别详解

嗨,欢迎来到我的 优快云 博客小天地!一名深耕多年的技术发烧友。在这里,我将把日常工作中积累的宝贵经验,从复杂架构设计的精妙之处,到代码优化的实战技巧,毫无保留地分享给大家。 6653

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

module.exports、exports、export、export default之间的关系和区别

对于module.exports、exports和export、export default之间的关系以及他们的区别一直处于懵逼状态的小伙伴,本篇文章带你走进新大陆。 首先我们要明白一个前提,CommonJS模块规范和ES6模块规范完全是两种不同的概念。此处会产生一个疑问,为什么会出现模块化这种东西,模块化规范又是指的什么? :很久以前,开发网页要通过命名空间的方式来组织代码,例如 jQuery ...

一只路过的小码农 5380

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

module.exports、exports和export、export default的区别,import和require的区别

在vue及其他模块化开发中,经常会用到这些输出和引用的语句,那么,怎么在合适的时候用合适的语句呢,怎么区分它们呢? 一、理论区别 首先,module.exports和exports是属于 CommonJS 模块规范,export和export default是属于ES6语法。require属于 CommonJS 模块规范,import属于ES6语法。 一般情况: module.exports和ex...

Baby_加油_的博客 1422

【NodeJS】浅析 exports 与 module.exports 的区别 及 export default 与 export 的区别

模块的概念   模块分为两类:原生模块和文件模块。原生模块即 Node.js API 提供的原生模块,原生模块在启动时已经被加载。文件模块为动态加载模块,加载文件模块的工作主要由原生模块 module 来实现和完成。原生模块在启动时已经被加载,而文件模块则需要通过调用 Node.js 的 require 方法来实现加载。   需要了解的一点是,Node.js 会对原生模块和文件模块都进行缓存,

'Ablaze 的专栏 3071

exports、module.exports和export、export default之间的区别(简单版)

直接简单粗暴进入正题,本文只是为了在记忆模糊的时候快速纠正。 先来个总结: require: node 和 es6 都支持的引入(CommonJS规范) export / import : 只有es6 支持的导出引入 module.exports / exports: 只有 node 支持的导出(CommonJS规范) 然后分别具体看看先关的使用方法: CommonJS规范: 简单来说:Com...

sak1sm的笔记 2095

module.exports、 exports和export default的区别

module.exports 、 exports 和export default的区别 文章目录`module.exports` 、 `exports` 和`export default`的区别一、说明1.1 `module.exports`二、联系与区别2.1 `exports` 与 `module.exports`的关系2.2 `export`和`export default`的区别2.2.1 `export`用法2.2.2 `export default`用法2.2.3 `module.exports

tianyaluqingchen的博客 1002

exports与module.exports,export与export default 使用及其区别

exports 与 module.exports var cel = function(){ console.log('cel') } var el = 20 exports.cel = cel exports.el = el module.exports.el = 15 module.exports = { //在es6中当 key和value 一样的时候可以只写一个,为了更清晰我...

曹先森的博客 2326

module.exports和exports和export和export default的区别

module.exports和exports是nodeJs中的模块导出方式 在一个 node 执行一个文件时,会给这个文件内生成一个 exports 和 module 对象, 而module又有一个 exports 属性。他们都指向一块{}内存区域。 exports = module.exports = {}; 具体验证一下 // hello.js const hello = func...

风萧萧兮易水寒 1290

module.exports | exports | export | export default的区别

nodejs使用中,常常看到export, export default, exports, module.exports,它们有什么区别,我们来聊聊这个话题。

caixiaowang的博客 4771

module.exports和exports export和export default的区别

一、module.exports和exports 的区别 CommonJS规范,经常能看到两种导出模块的方式:module.exports和exports。 console.log(exports);//输出:{} console.log(module);//输出:Module {..., exports: {}, ...} (注:...代表省略了其他一些属性) 从打印我们可以看出,modul...

Wan_x_h的博客 265

export、export default以及module.exports、exports之间的区别

export、export default属于ES6模块规范 引入方式import .. from ‘..’; module.exports、exports属于Commonjs规范 引入方式 const xx = require(‘..’); ES6模块规范导出的内容用require的方式引入 也是可以获取到数据的 同理Commonjs写法 用import方式也是可以获取到数据的。 1.ex...

fxg163的专栏 406

module.exports和exports和export和export default的区别,import和require的区别

关于module.exports和exports的区别,我已经在前一篇文章讲过,传送门。 在es5中,用module.exports和exports导出模块,用require引入模块。 es6新增export和export default导出模块,import导入模块。 一、在es6中的两种基本用法 新建两个文件:a.js, b.js。a.js用于导出模块,b.js用户导入模块。两个文件放在...

GoodIdea 662

module.exports 、 exports、export、export default 区别

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34266504的博客 207
上一篇: echart图标区域背景
下一篇: js 捕捉错误 try catch
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值