ECMAScript标准的两种语法--默认导出导入与命名式导出导入

简介: ECMAScript标准的两种语法--默认导出导入与命名式导出导入

上一篇分享了CommonJS 规范,CommonJS 规范是 Node.js 环境中默认的,后来官方推出 ECMAScript 标准语法,这种语法使用起来感觉更简单和灵活,并在vue开发中大量使用

我们接下来在一个需求中,体验下ECMAScript标准中的【默认与命名式】两种导出导入的语法:

需求:

封装并导出基地址和求数组元素和的函数,导入到 index.js 使用查看效果

一、默认导出导入:

1、导出语法:

export default {
  对外属性名: 模块内私有变量
}

2、导入语法

import 变量名 from '模块名或路径'

变量名的值接收的就是目标模块导出的对象

3、代码实现:

  • utils.js:导出
/**
 * 目标:基于 ECMAScript 标准语法,封装属性和方法并"默认"导出
 */
const baseURL = 'http://hmajax.itheima.net'
const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)
 
// 默认导出
export default {
  url: baseURL,
  arraySum: getArraySum
}
  • index.js:导入
/**
 * 目标:基于 ECMAScript 标准语法,"默认"导入,工具属性和方法使用
 */
// 默认导入
import obj from './utils.js'
console.log(obj)
const result = obj.arraySum([10, 20, 30])
console.log(result) //60

二、命名导出和导入

1、命名导出语法:

export 修饰定义语句

2、命名导入语法:

import { 同名变量 } from '模块名或路径'

注意:同名变量指的是模块内导出的变量名

3、代码示例:

  • utils.js 导出
/**
 * 目标:基于 ECMAScript 标准语法,封装属性和方法并"命名"导出
 */
export const baseURL = 'http://hmajax.itheima.net'
export const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)
  • index.js 导入
/**
 * 目标:基于 ECMAScript 标准语法,"命名"导入,工具属性和方法使用
 */
// 命名导入
import {baseURL, getArraySum} from './utils.js'
console.log(obj)
console.log(baseURL)
console.log(getArraySum)
const result = getArraySum([10, 21, 33])
console.log(result)

三、命名与默认导出如何选择:

  • 按需加载,使用命名导出和导入
  • 全部加载,使用默认导出和导入

注意:Node.js 默认只支持 CommonJS 标准语法,如果想要在当前项目环境下使用 ECMAScript 标准语法,请新建 package.json 文件设置 type: 'module' 来进行设置

{ “type”: "module" }

结束!!!

本专栏后续会持续分享node.js与前端工程化的相关技能,从基础到高级,欢迎大家订阅!

相关文章
|
5月前
从同一文件中导出和导入多个组件
从同一文件中导出和导入多个组件
|
6月前
|
存储 Java easyexcel
导出导入开发场景
导出导入开发场景
|
Python
导入名为'materials'的模块时出现了错误
导入名为'materials'的模块时出现了错误
114 2
5.ES6模块导出导入
5.ES6模块导出导入
78 0
|
JavaScript
【ES6】模块化语法(默认、按需导入import导出export的操作)
ES6模块化语法(默认、按需导入导出的操作)
【ES6】模块化语法(默认、按需导入import导出export的操作)
“UnwrapRef“ 是一种类型,在同时启用了 “preserveValueImports“ 和 “isolatedModules“ 时,必须使用仅类型导入进行导入。
“UnwrapRef“ 是一种类型,在同时启用了 “preserveValueImports“ 和 “isolatedModules“ 时,必须使用仅类型导入进行导入。
1011 0
“UnwrapRef“ 是一种类型,在同时启用了 “preserveValueImports“ 和 “isolatedModules“ 时,必须使用仅类型导入进行导入。
|
JSON Shell 测试技术
gookit/config - Go应用配置管理,支持多种格式,多文件加载,支持数据合并,解析环境变量名等等
gookit/config - Go应用配置管理,支持多种格式,多文件加载,支持数据合并,解析环境变量名,绑定数据到结构体等等
194 0
gookit/config - Go应用配置管理,支持多种格式,多文件加载,支持数据合并,解析环境变量名等等
ES6模块导出&导入
ES6模块导出&导入
96 0
|
JavaScript
JS中import时什么时候允许自定义命名,什么时候不允许自定义命名
JS中import时什么时候允许自定义命名,什么时候不允许自定义命名
229 0
JS中import时什么时候允许自定义命名,什么时候不允许自定义命名