import与export在node.js中的使用方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了import与export在node.js中的使用方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4602字,纯文字阅读大概需要7分钟。
内容图文
![import与export在node.js中的使用方法](/upload/InfoBanner/zyjiaocheng/296/8097269037764db89ab460ac0ad0a631.jpg)
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是随意的变量,乍一看可能会觉的和第二种写法一样,其实不然,来看一下编译后的代码:
在最后一行,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的用法的相似,至于用什么怎么用还是看个人喜好吧。
相关推荐:
详解JavaScript ES6中export import与export default的用法和区别
以上就是import与export在node.js中的使用方法的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的import与export在node.js中的使用方法全部内容,希望文章能够帮你解决import与export在node.js中的使用方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。