两种 export 方式
export default const a = 1
和
const a = 1
export default a
为什么前者这样无效,而后者却可以?
该问题与 stackoverflow 上的一个问题类似。但是因为水平原因,没有理解。
追加问题:
export {
a: 1,
}
为什么这样又不可以?
两种 export 方式
export default const a = 1
和
const a = 1
export default a
为什么前者这样无效,而后者却可以?
该问题与 stackoverflow 上的一个问题类似。但是因为水平原因,没有理解。
追加问题:
export {
a: 1,
}
为什么这样又不可以?
stackoverflow 上说了,const/let是ES6关键字,如果default后跟const之类的关键字是不符合的,
ES6规范中标记出了default后面能带的参数
export {
a: 1,
}
export命令输出的是接口,可以动态的获取模块内部的值,具体可以来说可以是变量,函数或class的,但是你上面那种方式直接导出一个确切的对象,换成下面这中方式是可以的,因为其他模块引入这个文件,使用这个接口获取到a的值是动态的
var a=1;
export {
a
}
babel playground转化后的代码
module文件导出的实际上是exports
对象
export 后需要一个key将val绑定在exports
对象上, 因此用一个声明语句得到key和val
expord default 已经指定了key为default
, 所以后面只能跟一个值表达式
同理一下 export default都是合法且等效的
export default 42
export default n = 42
export default +function(){ return 42 }()
原问题:
这是js语法规定,default是一个导出的名字,如果使用import * as all from ...
,export default
导入的变量就是all.defualt
可以这样理解:不能在定义变量的时候又把他当作defalut导出
新增的问题:
export {
a: 1,
}
普通的export需要一个名字,你导出匿名对象是不行的,不然你在import {xxx} from...
里面xxx写什么名字呢
export default {
a: 1,
}
默认导出匿名对象是可以的,你导入的时候可以给任意命名,像这样import anyName from...
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决