温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

ES6 module的使用示例

发布时间:2021-01-30 09:46:10 来源:亿速云 阅读:143 作者:小新 栏目:web开发

这篇文章将为大家详细讲解有关ES6 module的使用示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

这是一份备忘单,展示了不同的导出方式和相应的导入方式。 它实际上可分为3种类型:名称,默认值和列表 。

// 命名导入/导出 
export const name = 'value'
import { name } from '...'

// 默认导出/导入
export default 'value'
import anyName from '...'

// 重命名导入/导出 
export { name as newName }
import { newName } from '...'

// 命名 + 默认 | Import All
export 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 ≠ Object
export {
  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
}

ES6 module的使用示例

导入全部

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

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

关于“ES6 module的使用示例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI