作者:Samantha Ming
译者:前端小智
起源:medium
有幻想,有干货,微信搜寻 【大迁世界】 关注这个在凌晨还在刷碗的刷碗智。
本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试残缺考点、材料以及我的系列文章。
这是一份备忘单,展现了不同的导出形式和相应的导入形式。 它实际上可分为3种类型:名称,默认值和列表 ?
// 命名导入/导出 export const name = 'value'import { name } from '...'// 默认导出/导入export default 'value'import anyName from '...'// 重命名导入/导出 export { name as newName }import { newName } from '...'// 命名 + 默认 | Import Allexport const name = 'value'export default 'value'import * as anyName from '...'// 导出列表 + 重命名export { name1, name2 as newName2}import { name1 as newName1, newName2} from '...'
接下来,咱们来一个一个的看?
命名形式
这里的要害是要有一个name。
export const name = 'value';
import { name } from 'some-path/file';console.log(name); // 'value'
大家都说简历没我的项目写,我就帮大家找了一个我的项目,还附赠【搭建教程】。
默认形式
应用默认导出,不须要任何名称,所以咱们能够轻易命名它?
export default 'value'
import anyName from 'some-path/file'console.log(anyName) // 'value'
❌ 默认形式不必变量名
export default const name = 'value'; // 不要试图给我起个名字!
命名形式 和 默认形式 一起应用
命名形式 和 默认形式 能够同个文件中一起应用?
eport const name = 'value'eport default 'value'
import anyName, { name } from 'some-path/file'
导出列表
第三种形式是导出列表(多个)
const name1 = 'value1'const name2 = 'value2'export { name1, name2}
import {name1, name2 } from 'some-path/file'console.log( name1, // 'value1' name2, // 'value2' )
须要留神的重要一点是,这些列表不是对象。它看起来像对象,但事实并非如此。我第一次学习模块时,我也产生了这种困惑。假相是它不是一个对象,它是一个导出列表
// ❌ Export list ≠ Objectexport { name: 'name'}
重命名的导出
对导出名称不称心?问题不大,能够应用as
关键字将其重命名。
const name = 'value'export { name as newName}
import { newName } from 'some-path/file'console.log(newName); // 'value'// 原始名称不可拜访console.log(name); // ❌ undefined
❌ 不能将内联导出与导出列表一起应用
export const name = 'value'// 你曾经在导出 name ☝️,请勿再导出我export { name}
大家都说简历没我的项目写,我就帮大家找了一个我的项目,还附赠【搭建教程】。
重命名导入
同样的规定也实用于导入,咱们能够应用as
关键字重命名它。
const name1 = 'value1'const name2 = 'value2'export { name1, name2 as newName2}
import { name1 as newName1, newName2} from '...'console.log(newName1); // 'value1'console.log(newName2); // 'value2'❌name1; // undefinedname2; // undefined
导入全副
export const name = 'value'export default 'defaultValue'
import * as anyName from 'some-path/file'console.log(anyName.name); // 'value'console.log(anyName.default); // 'defaultValue'
命名形式 vs 默认形式
是否应该应用默认导出始终存在很多争执。 查看这2篇文章。
- Why I've stopped exporting defaults from my JavaScript modules
- GitLab RFC by Thomas Randolph
就像任何事件一样,答案没有对错之分。正确的形式永远是对你和你的团队最好的形式。
命名与默认导出的非开发术语
假如你欠敌人一些钱。 你的敌人说能够用现金或电子转帐的形式还钱。 通过电子转帐付款就像named export
一样,因为你的姓名已附加在交易中。 因而,如果你的敌人健忘,并开始叫你还钱,说他没收到钱。 这里,你就能够简略地向他们显示转帐证实,因为你的名字在付款中。 然而,如果你用现金偿还了敌人的钱(就像default export
一样),则没有证据。 他们能够说过后的 100 块是来自小红。 现金上没有名称,因而他们能够说是你自己或者是任何人?
那么采纳电子转帐(named export
)还是现金(default export
)更好?
这取决于你是否信赖的敌人?, 实际上,这不是解决这一难题的正确办法。 更好的解决方案是不要将你的关系置于该地位,免得冒险危及友情,最好还是互相坦诚。 是的,这个想法也实用于你抉择named export
还是default export
。 最终还是取决你们的团队决定,哪种形式对团队比拟敌对,就抉择哪种,毕竟不是你本人一个人在战斗,而是一个个人?
人才们的 【三连】 就是小智一直分享的最大能源,如果本篇博客有任何谬误和倡议,欢送人才们留言,最初,谢谢大家的观看。
原文:https://puppet.com/docs/puppe...
代码部署后可能存在的BUG没法实时晓得,预先为了解决这些BUG,花了大量的工夫进行log 调试,这边顺便给大家举荐一个好用的BUG监控工具 Fundebug。
交换
文章每周继续更新,能够微信搜寻【大迁世界 】第一工夫浏览,回复【福利】有多份前端视频等着你,本文 GitHub https://github.com/qq449245884/xiaozhi 曾经收录,欢送Star。