前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ES6系列_16之模块化操作

ES6系列_16之模块化操作

作者头像
wfaceboss
发布2019-04-08 10:32:27
3650
发布2019-04-08 10:32:27
举报
文章被收录于专栏:wfacebosswfaceboss

ES6的模块化操作主要包括两个方面。

(1)export :负责进行模块化,也是模块的输出。

(2)import : 负责把模块引,也是模块的引入操作。

export的用法:

export可以让我们把变量,函数,对象进行模块化,提供外部调用接口,让外部进行引用。先来看个最简单的例子,把一个变量模块化。我们新建一个demo.js文件,然后在文件中输出一个模块变量。

代码语言:javascript
复制
export var a = '单个变量导出';

然后可以在index.js中以import的形式引入。

代码语言:javascript
复制
import {a} from './temp.js';
console.log(a);

最后在控制台输入 babel-node index.js 指令。注意index.js目录

目前我的index.js在src目录下,所以是在该目录执行上述指令的。如图:

2.多变量的输出

先要声明变量,需要把变量都进行模块化输出,这时候我们给他们包装成对象就可以了。

demo.js中:

代码语言:javascript
复制
var a ='i';
var b ='love';
var c = 'you';
export {a,b,c}

index.js中:

代码语言:javascript
复制
import {a,b,c} from './demo.js';
console.log(a,b,c);

执行指令后结果为:

3.函数的模块化输出

在demo.js中定义一个函数,并使用export进行输出。

代码语言:javascript
复制
export function add(a,b){
    return a+b;
}

index.js中:

代码语言:javascript
复制
import {add} from './demo.js';
console.log(add(1,2));

结果为:

5.as的用法

有些时候我们并不想暴露模块里边的变量名称,而给模块起一个更语义话的名称,这时候我们就可以使用as来操作。

demo.js中:

代码语言:javascript
复制
var a ='i';
var b ='love';
var c = 'you';
export {
    a as x,
    b as  y,
    c as z
}

index.js中:

代码语言:javascript
复制
import {x,y,z} from './demo.js';
console.log(x,y,z);

输出结果为:

6.export default的使用

加上default相当是一个默认的入口。在一个文件里export default只能有一个。

export default 和 export 区别:

(1)export

输出格式:

代码语言:javascript
复制
export var a = '单个变量导出';

对应导入格式:使用花括号

代码语言:javascript
复制
import {a} from './temp.js';
console.log(a);

(2)export defalut

代码语言:javascript
复制
export default var a='默认单个变量输出;

对应导入格式:

代码语言:javascript
复制
import a from './temp';
console.log(a)//默认单个变量输出

总结:export default 和 export 区别为

(1)通过export方式导出,在导入时要加{ },export default则不需要。

(2)使用export default命令,为模块指定默认输出,这样就不需要知道所要加载模块的变量名,而export命令需要知道相应的模块的变量名。

(3)export与export default均可用于导出常量、函数、文件、模块等

(4)在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用。

over....

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-12-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档