原来ES6 module还可以这样用!(备忘单)

原来ES6 module还可以这样用!(备忘单)

这是一份备忘单,展示了不同的导出方式和相应的导入方式。 它实际上可分为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}

登录后复制

1.png

导入全部

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 modulesGitLab RFC by Thomas Randolph

就像任何事情一样,答案没有对错之分。正确的方式永远是对你和你的团队最好的方式。

命名与默认导出的非开发术语

假设你欠朋友一些钱。 你的朋友说可以用现金或电子转帐的方式还钱。 通过电子转帐付款就像named export一样,因为你的姓名已附加在交易中。 因此,如果你的朋友健忘,并开始叫你还钱,说他没收到钱。 这里,你就可以简单地向他们显示转帐证明,因为你的名字在付款中。 但是,如果你用现金偿还了朋友的钱(就像default export一样),则没有证据。 他们可以说当时的 100 块是来自小红。 现金上没有名称,因此他们可以说是你本人或者是任何人

那么采用电子转帐(named export)还是现金(default export)更好?

这取决于你是否信任的朋友??, 实际上,这不是解决这一难题的正确方法。 更好的解决方案是不要将你的关系置于该位置,以免冒险危及友谊,最好还是相互坦诚。 是的,这个想法也适用于你选择named export还是default export。 最终还是取决你们的团队决定,哪种方式对团队比较友好,就选择哪种,毕竟不是你自己一个人在战斗,而是一个团体??

英文原文地址:https://puppet.com/docs/puppet/latest/cheatsheet_module.html作者:Samantha Ming

更多编程相关知识,请访问:编程入门!!

以上就是原来ES6 module还可以这样用!(备忘单)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2718231.html

(0)
上一篇 2025年3月7日 22:13:08
下一篇 2025年2月27日 06:22:17

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 影响页面加载时间的5个常见错误

    如果您的网站在用户访问时的加载时间需要很久,那么,这篇文章兴许能为您的优化工作带来一些启发。不过即便没能帮您解决你的问题,您也能了解到影响了网站加载时间的几种常见错误是什么。 为什么页面加载时间这个指标很重要? 页面的加载时间直接影响到了用…

    2025年3月7日
    200
  • 快速学习JavaScript中的Promise和Async/Await

      一般在开发中,查询网络API操作时往往是比较耗时的,这意味着可能需要一段时间的等待才能获得响应。因此,为了避免程序在请求时无响应的情况,异步编程就成为了开发人员的一项基本技能。 在JavaScript中处理异步操作时,通常我们经常会听到…

    2025年3月7日
    200
  • 十款面向前端开发人员的chrome扩展(分享)

    本篇文章给大家分享十款面向前端开发人员的chrome扩展。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 1. CSSViewer   这个工具在识别和显示元素的CSS属性方面很有用。它包括一个浮动窗口,您可以把鼠标悬停在…

    2025年3月7日 编程技术
    200
  • 浅谈JavaScript中的Map、WeakMap、Set和WeakSet

    我猜想,超过70%的JavaScript开发人员仅使用对象来收集和维护其项目中的数据。好吧,确实如此,新的集合对象(例如Map和Set)即使在2015年问世也没有得到充分利用。 因此,今天,我将讨论2015年以来的神奇新功能——Map,Se…

    2025年3月7日
    200
  • 怎样用 Node.js 高效地从 Web 爬取数据?

    相关推荐:《nodejs 教程》 由于Javascript有了巨大的改进,并且引入了称为NodeJS的运行时,因此它已成为最流行和使用最广泛的语言之一。 无论是Web应用程序还是移动应用程序,Javascript现在都具有正确的工具。 本文…

    2025年3月7日
    200
  • 详解JS中的window.location对象(备忘单)

    如果你想获取站点的URL信息,那么window.location对象什么很适合你!使用其属性获取有关当前页面地址的信息,或使用其方法进行某些页面重定向或刷新 window.location.origin    → ‘”https://seg…

    2025年3月7日
    200
  • 学习使用JavaScript实现UTF-8编解码

    首先简单介绍一下UTF-8。UTF-8以字节为单位对Unicode进行编码。UTF-8的特点是对不同范围的字符使用不同长度的编码。对于0x00-0x7F之间的字符,UTF-8编码与ASCII编码完全相同。UTF-8编码的最大长度是6个字节。…

    2025年3月7日
    200
  • 深入浅析JS中的事件委托

    为什么要进行事件委托? 首先实现一个小功能:在单击 HTML 的按钮后,把消息输出到控制台。 为了实现这个小功能,你需要选择按钮,然后再用 addEventListener() 方法来附加事件监听器: Click me document.g…

    2025年3月7日
    200
  • javascript alert是什么意思

    alert在英语中的意思是“警告”,javascript中,alert()指的是弹出警告框;alert()方法可以显示带有一条指定消息和一个“确定”按钮的警告框;用户阅读完所显示的信息后,只需单击“确定”按钮就可以关闭对话框。 本教程操作环…

    2025年3月7日 编程技术
    200
  • 浅谈JavaScript中检查数组是否包含指定值的几种方法

    本篇文章给大家介绍一下javascript中检查数组是否包含指定值的几种方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 数组是我们编程中经常使用的的数据结构之一。在处理数组时,我们经常需要在数组中查找特定的值,Jav…

    2025年3月7日 编程技术
    200

发表回复

登录后才能评论