位置: 编程技术 - 正文

import与export在node.js中的使用详解(import和export区别)

编辑:rootadmin

推荐整理分享import与export在node.js中的使用详解(import和export区别),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:export和import辨析,@import和import,import与export如何区别,import和export区别,export和import辨析,@import和import,import or,import,export,内容如对您有帮助,希望把文章链接给更多的朋友!

简述

import与export是es6中模块化的导入与导出,node.js现阶段不支持,需要通过babel进行编译,使其变成node.js的模块化代码。(关于node.js模块,可参考其他node.js模块化的文章)

export 曝露

使用export可以曝露出方法、对象、字符串等等,如下代码

那么,上面的代码经过babel的编译后,变成可以执行的node.js代码,如下

看到上面的代码我们知道了,es6的export会被转成node.js中的exports的曝露方式。

import 导入

再来看下import的写法,我们引入上面写export的文件xx.js

第一种写法

foo,qux是在xx.js中我们曝露出来的属性,在xx.js中曝露出来的属性有foo、bar、qux3个,由此可知这种写法需要知道引入文件中曝露出来的属性的名称,并且可以按需要写,不需要枚举全部属性。

下面我们来看下babel编译后的代码:

就是一个简单的require方法,引入xx.js,所以用这种方式我们是可以引入es6的模块也可以引入node.js模块的。

第二种写法

这里还是引入xx.js,这种写法会把xx.js中曝露出来的属性都赋值给xx这个变量(其实就是给module.exports起个别名),被babel编译后如下下:

看到上面的代码,有一个判断是node模块还是es模块,这种写法也是兼容es模块和node的模块的。

第三种写法

在这种写法中oo是随意的变量,乍一看可能会觉的和第二种写法一样,其实不然,来看一下编译后的代码:

import与export在node.js中的使用详解(import和export区别)

在最后一行,oo.bar被编译成了_2.default.bar,多了一个default,这里的bar当然就找不到了,所以这种用法不是用来引入export的属性的,而是下面要说的export default。

export default 曝露且一次性曝露

export与export default我会在别的文章总结,这里我们只说export default的用法,下面来看代码。

被babel编译后

看到最后一行foo会被赋给exports.default,这样正好对应上了import oo from './xx'这种写法里面会调用default里面的属性,所以这两种用法对应使用。既然属性的值是会赋给exports.default,那么就可以有下面的用法

上面的代码是分开写的,因为一个js里面只能使用一次export default,理由和使用module.exports一样,除了不能写多个,下面也是错误的写法:

export default还可以用来曝露class这里不多说了,都是曝露。

其他的一些用法

继承

这里说是模块继承,其实就是一个父模块引入子模块,然后又将子模块曝露出来的属性曝露出去:

被编译后

注意下面这句

default属性不向外曝露...这说明,我们的引入的xx.js这个文件里面用exports default是无效的,替代写法是

继承的写法常用于组织多个模块,经常与下面要说的引包一起用

引文件夹(引包)

很多人不理解下面这行代码

为什么import可以引入文件夹,注意不是什么文件夹都可以,里面至少有一个文件就是index.js或者有package.json和另外名字的js,因为文件夹里面有index.js那么这就不是一个文件夹而是node.js的包了(更多参见node.js包的文章),import会被babel编译成require,require可以去引用指定路径的包,因此,import可以去导入一个文件夹,我们可以依赖index.js将文件夹中的其他文件代码导出,例如:

我们可以通过import oo这个文件夹得到1.js、2.js里面曝露出的属性。

总结

从看babel编译后的代码,可以看出export与exports,module.exports与export default的用法的相似,至于用什么怎么用还是看个人喜好吧。

标签: import和export区别

本文链接地址:https://www.jiuchutong.com/biancheng/379534.html 转载请保留说明!

上一篇:详解node+express+ejs+bootstrap构建项目(详解金球奖之争)

下一篇:详解Node全局变量global模块(node的全局变量有哪些)

  • 4s店事故处理流程
  • 新入股的钱入什么科目
  • 1号没有抄税可以补税吗
  • 卖家电税是多少
  • 个税两种申报方式哪种好
  • 人工费用包括哪些科目
  • 小微企业一般要交什么费用2019
  • 代收款需要开票吗
  • 房地产预收账款如何缴纳印花税
  • 收到固定资产抵账增值税计税基础
  • 施工单位奖金分配方案
  • 公司阅览室布置图片
  • 资本公积提取比例怎么算
  • 国有企业出租房屋管理规定
  • 印花税按什么税率
  • 记账凭证领用材料如何填写
  • 所得税 季报
  • 我的初级备考日记--你都没坚持,还谈什么未来
  • 车辆保险分期分摊怎么做账?
  • 应补退所得税额是什么
  • 向客户发放,赠品怎么写
  • 资产减值损失怎么影响利润
  • 计算机系统结构第三版课后答案
  • 企业所得税汇算清缴会计分录
  • MacOS bigsur11.2连击缩放窗口功能怎么关闭或开启?
  • PHP:stream_socket_pair()的用法_Stream函数
  • Win11 Build 22449.1000 预览版发布(附更新修复已知问题汇总)
  • 盈利结转利润
  • 股东变更需要哪些手续的法律规定
  • 非货币性资产交换补价大于25%的会计处理
  • 利用漏洞每天获利万元
  • 最小的电池是多大
  • 二连浩特老照片
  • 营改增允许从销售额中扣
  • 旺阿雷自然保护区里的旺阿雷瀑布,新西兰北岛 (© Nathan Kavumbura/Getty Images)
  • 企业收到赠送商品怎么办
  • 利润表利息费用怎么填
  • 珠宝行业会计核算内容
  • watch跟computed区别
  • 杀疯了出自哪里
  • laravel实战教程
  • 报关单的运费没填怎么办
  • 收入调节方式有哪三种
  • 个人所得税要缴纳一万多怎么办
  • Python打开文件的代码
  • mongodb reference
  • javascript基础笔记
  • 刷pos机的如何记会计分录
  • 以前年度损益调整是什么意思
  • 土地入固定资产计提折旧吗
  • sql2005数据库
  • 一次性加速折旧考虑残值吗
  • 企业财务费用为负好不好
  • 电商平台经销商
  • 实收资本账务处理流程
  • 预付卡销售成品油会计分录
  • 起初数据录入
  • 收到第三方补助怎么做账
  • 记账凭证是不是转账凭证
  • 买公司的钱计入什么科目
  • 净资产=资产-负债
  • 查看mysql执行sql日志内容
  • sql的常用函数
  • windows8出现蓝屏
  • ubuntu 20.04 unity
  • 高手养成计划 小说
  • myminer.exe是什么
  • 酷狗app去广告
  • shell脚本sudo免输密码
  • js实现多继承
  • 安卓接口分类
  • 深入探讨英文
  • unity 人物控制
  • 基于JAVASCRIPT实现的可视化工具是
  • Android 4.4 Dialog 被状态栏遮挡的解决方法
  • jq form提交
  • 吉林省工伤保险咨询电话
  • 青海的医疗保险费是多少钱
  • 国网成都市局和绵阳市局的区别?
  • 电信部门可以知道通话内容吗?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设