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与前端工程化的相关技能,从基础到高级,欢迎大家订阅!

相关文章
|
21天前
从同一文件中导出和导入多个组件
从同一文件中导出和导入多个组件
|
1月前
|
存储 Java easyexcel
导出导入开发场景
导出导入开发场景
|
1月前
|
XML Java BI
​ 文件导出
​ 文件导出
30 1
|
6月前
|
前端开发 小程序 PHP
laravel5.8(四)引入自定义常量文件及公共函数文件
开发过程中,我们一般会用到一些不会改变,或者改变不是很频繁的值,这样的值我们一般将他们定义成常量。 比如网站根目录,或者分页数,或者域名等等。 那我们如何在laravel5.8中引入自定义的常量文件及公共的函数文件呢。 大概有两种方式: 1:框架目录下引入(不推荐) 在框架目录vendor下新建常量文件const.php,以及公共函数文件function.php 在autoload.php文件中引入。 这种方法是可以的,但是不推荐,框架目录下最好都是框架自己的那些文件,正常来说,框架的文件我们在开发过程中,git是不会进行托管的。 2:在app目录下引入 在bootstrap目录下新建常量文件
42 0
|
11月前
|
Python
导入名为'materials'的模块时出现了错误
导入名为'materials'的模块时出现了错误
84 2
5.ES6模块导出导入
5.ES6模块导出导入
56 0
|
JavaScript
【ES6】模块化语法(默认、按需导入import导出export的操作)
ES6模块化语法(默认、按需导入导出的操作)
【ES6】模块化语法(默认、按需导入import导出export的操作)
ES6模块化的导入和导出
ES6模块化的导入和导出
98 0
“UnwrapRef“ 是一种类型,在同时启用了 “preserveValueImports“ 和 “isolatedModules“ 时,必须使用仅类型导入进行导入。
“UnwrapRef“ 是一种类型,在同时启用了 “preserveValueImports“ 和 “isolatedModules“ 时,必须使用仅类型导入进行导入。
955 0
“UnwrapRef“ 是一种类型,在同时启用了 “preserveValueImports“ 和 “isolatedModules“ 时,必须使用仅类型导入进行导入。