ES6 暴露模块及导入注意事项
学习大神关于ES6的讲解https://es6.ruanyifeng.com/
基础
export与export default均可用于导出常量、函数、文件、模块等
在一个文件或模块中,export、import可以有多个,export default仅有一个
如果一个文件里export了很多函数(常量,变量), 如果你想在目标一次性全部导入模块的所有函数(常量,变量)就可以使用 import * as xxx代表全部
通过export方式导出,在导入时要加{ }(因为export方式需要一一对应,本质上使用了解构),而export default则不需要
export能直接导出变量表达式,export default不行。
我的混淆点
1.import * as obj from 'xxx',与 import from 的区别
export参数指定单个(多个)的命名导出,import {foo,bar} from "xxx",一一对应的引入foo,bar
export参数指定多个的命名导出,而import * as name
语法导入所有导出接口,即导入模块整体。
如何理解 import * as obj from "xxx"
会将 "xxx"
中所有 export
导出的内容组合成一个模块(对象obj)返回。若模块中包含一个一个接口getList(),则调用时需写obj.getList()
2.import * as obj from 'xxx' 与 import {a as obj} from 'xxx'
如何理解 import {a as obj} from 'xxx',这里是将 a 引入的同时重命名为obj。
3.import "xxx" 与 import {foo} from "xxx"
如何理解 import "xxx" 仅仅执行xxx里的代码,而不输入任何值(还不了解具体使用场景为什么要这么写)
洗尽铅华始见金,褪去浮华归本真