ES6的模块化规范之导入与导出

ES6的模块化系统支持使用importexport关键字导入和导出模块。

  • 使用export关键字可以将变量、函数、类等导出为一个模块。
  • 使用export default关键字可以导出一个默认的内容,每个模块只能有一个默认导出。
  • 使用import关键字可以从其他模块中导入所需的内容。
  • 使用花括号 {} 导入命名导出的内容,使用任意名称导入默认导出的内容。

默认导入和导出

默认导入:export default 默认导出的成员

javascript 复制代码
let name='张三'
let age=18
const sex='男'
const info='人物信息'
function clog(){
    console.log(name,age,sex)
}

export default{ //抛出info变量和clog方法
    info,
    clog
}

在这里导出了一个info变量和一个clog方法,info的值为一个字符串'人物信息',clog的效果是打印出name,age,sex这三个变量的值。

默认导出:import 接收名称 from '文件所处位置'

xml 复制代码
<template>
	<div>
		<text>{{ text.info }}</text>
	</div>
</template>

<script setup>
import text from './api/text';

let show= text.clog();
</script>

导入text.js中所抛出的变量info和方法clog,通过将info的值渲染到浏览器页面上以及调用clog方法来查看效果。

  • 打印效果
  • 渲染效果

注意的是: 每个模块中,只允许使用唯一的一次 export default


按需导入和按需导出

按需导出:使用export关键字导出的内容需要被命名,其他模块需要使用相同的名称进行导入。

javascript 复制代码
let name='张三'
let age=18
const sex='男'
function clog(){
    console.log(name,age,sex)
}

export const info='人物信息'
export { 
    name,
    age,
    sex
}

在这里进行了两次导出,第一次导出了info变量,第二次导出了name,age,sex这三个变量

按需导入:使用import关键字导入的内容需要与导出时使用相同的名称匹配。

xml 复制代码
<template>
	<div>
		<text>{{ name }}</text>
		<text>{{ age }}</text>
		<text>{{ sex }}</text>
	</div>
</template>

<script setup>
import {name,age,sex,info} from './api/text';

console.log(info);

</script>

在这里导入了text.js中的name,age,sex,info这四个变量,同时将name,age,sex这三个变量渲染到浏览器页面上,将info变量打印处理。

  • 如果我们引入未被导出的clog时浏览器会报出以下错误
  • 渲染效果为
  • 打印效果为

值得注意的是在按需导入中,每个模块中可以多次按需导出且按需导入的成员名称必须和按需导出的名称保持一致


总结

ES6模块化规范是ES6中引入的一种模块化系统,用于在JavaScript应用程序中组织、导入和导出代码。它提供了一种更简单、更可靠的方式来处理模块之间的依赖关系。每个模块都应该有一个独立的文件,文件名通常与导出的内容相关,模块中的代码可以使用其他模块导出的内容。

相关推荐
layman05289 分钟前
webpack5 css-loader:从基础到原理
前端·css·webpack
半桔11 分钟前
【前端小站】CSS 样式美学:从基础语法到界面精筑的实战宝典
前端·css·html
AI老李11 分钟前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·postcss
_OP_CHEN13 分钟前
【前端开发之CSS】(一)初识 CSS:网页化妆术的终极指南,新手也能轻松拿捏页面美化!
前端·css·html·网页开发·样式表·界面美化
啊哈一半醒15 分钟前
CSS 主流布局
前端·css·css布局·标准流 浮动 定位·flex grid 响应式布局
PHP武器库18 分钟前
ULUI:不止于按钮和菜单,一个专注于“业务组件”的纯 CSS 框架
前端·css
电商API_1800790524726 分钟前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫
晓晓莺歌28 分钟前
vue3某一个路由切换,导致所有路由页面均变成空白页
前端·vue.js
Up九五小庞1 小时前
开源埋点分析平台 ClkLog 本地部署 + Web JS 埋点测试实战--九五小庞
前端·javascript·开源
qq_177767372 小时前
React Native鸿蒙跨平台数据使用监控应用技术,通过setInterval每5秒更新一次数据使用情况和套餐使用情况,模拟了真实应用中的数据监控场景
开发语言·前端·javascript·react native·react.js·ecmascript·harmonyos