这是一个记事本,显示了不同的导出方法及其相应的导入方法。 实际上,可以分为三种类型:名称、默认值和列表
//导入/导出命名
导出常数name=' value '
import{name}from ' . '
//默认导出/导入
导出默认值' value '
importanyNamefrom ' . '
重命名//导入/导出
导出{ nameasnewname }
import{newName}from ' . '
//默认命名
导出常数name=' value '
导出默认值' value '
import*asanyNamefrom ' . '
//重命名导出列表
导出{
name1,
name2asnewName2
}
导入{
name1asnewName1,
newName2
}from ' . '接下来,让我们逐一看看
命名方式
这里重要的是有name。导出常数名称=' value '; 导入{ name } from ' some-path/file ';
控制台. log (name; //'value'
默认方式
使用默认导出,不需要名称,所以我们可以自由命名导出默认值' value ' importanynamefrom ' some-path/file '
console.log(anyname )//'value )缺省情况下不使用变量名称
exportdefaultconstname='value ';
//别想给我起名字!
命名方式 和 默认方式 一起使用
命名方法和默认方法可以在同一文件中一起使用eportconstname='value '
eport default ' value ' importan yname,{ name } from ' some-path/file '
导出列表
第三种方法是使用导出列表(constname1='value1'
constname2='value2'
导出{
name1,
name2
}import{name1,name2}from'some-path/file '
console.log (
name1,//'value1'
name2,//'value2'
)需要注意的重要一点是,这些列表不是对象。 看起来像对象,但不是。 我第一次学习模块的时候,也发生了这样的混乱。 真相是它是导出列表,而不是对象
//导出列表对象
导出{
name:'name '
您对}
重命名的导出
导出名称不满意吗? 问题不大。 可以使用as关键字重命名。constname='value '
导出{
nameasnewName
} import { newname } from ' some-path/file '
控制台. log (newname ); //'value '
//无法访问原始名称
控制台. log (name; //undefined不能将内联导出和导出列表一起使用
导出常数name=' value '
//您已经导出了name。 请不要再导出了
导出{
名字
}
重命名导入
类似的规则也适用于导入,可以使用as关键字重命名。constname1='value1'
constname2='value2'
导出{
name1,
name2asnewName2
导入{
name1asnewName1,
newName2
}from ' . '
控制台. log (newname 1; //'value1'
控制台. log (newname 2; //'value2'
name1;//未定义
name2; //undefined
导入全部
导出常数名称=' value '导出默认值'导入* asanynamefrom ' some-path/file '
控制台. log (any name.name ); //'value '
控制台. log (any name.default; //'defaultValue'
命名方式 vs 默认方式
关于是否应该使用默认导出的问题争论不休。 看这两篇文章。whyi ' vestoppedexportingdefaultsfrommyjavascriptmodulesgitlabrfcbythomasrandolph就像什么事一样,回答没有对错之分。 正确的方法永远是你和你的团队最好的方法。
假设你欠朋友
命名与默认导出的非开发术语
的钱。 你朋友说你可以用现金或电子汇款还钱。 电子汇款支付就像命名导出,因为您的名字附加在交易中。 所以,如果你的朋友太健忘了,没拿到钱就开始叫你还钱的话。 在这里,你的名字正在支付中,所以可以很容易地向他们显示转账证明。 但是,如果你用现金偿还朋友的钱(就像默认导出一样),就没有证据。 他们可以说当时的100张是故意来自仙人掌。 现金没有名字,所以他们可以说是你自己或谁那么,您要电子汇款(named export )还是现金?
这取决于你是否是你信任的朋友,但实际上,这不是解决这个问题的正确方法。 更好的解决办法是不要把你的关系放在那个位置上。 互相坦诚是最好的,以免冒险威胁友谊。 是的,这个想法也适用于你选择命名导出还是默认导出。 最终根据你们团队的决定,哪个方式对团队友好,选择哪个,毕竟不是你自己一个人在战斗,而是一个小组
作者: zgdsmt Ming译者:前端小智来源: medium
译文: 3359 puppet.com/docs/puppet/latest/cheat sheet _ module.html