ES6 Module

模块功能主要是由:export 和 import 两个命令组成的。

  • export命令
    用于规定模块的对外接口。通俗讲,就是这个模块输出了什么,是val还是function
// moduleA.js
var author = 'shaojian';
var version = '1.1';
exprot {author,version}
//等同于下边的方法,但是上一种更清晰明了
export var author = 'shaojian';
export var version = '1.1';
//统一了下个人的写法
var author = 'shaojian';
var version = '1.1';
function foo(x,y){
}
exports {
    author,
    version,
    foo
}

*** 注意 export命令输出的变量可以用 as关键字来重命名***

// moduleB.js
var author = 'shaojian';
var version = '1.1';
function foo(x,y){
}
exports {
    author as va1,
    version as val2,
    foo as f
}

  • import命令
    export导出的接口,其它的js文件中可以用import加载这个文件,加载即是引用
import {author,version,year} from './moduleA.js'

*** import具有变量提升效果,编译时会提升到文件的最顶部 ,所以下边的js不会报错***

f()
import {foo as f} from './moduleA.js'
  • 模块的整体加载
import  * as f from 'moduleB'
f.va1, f.val2 ,f.f(1,2)
  • export default用于模块的默认输出
//a.js
export default function(){
  console.log(11111)
}
//引用
import a from "a.js"

*** 一个模块只有一个默认的输出,也就是说,在一个模块里只能有一个export default***
有个使用上的区别

var a = 5;
export a;
//使用  
import {a as a1} from "module.js"
var a = 5;
export default a
//使用
import b from "module.js"

*** 同时引入默认和其他***

import a,{b} from "module.js"

*** 导出类 ***

export default ClassA{
    constructor(){}
    foo1(){}
}
//使用
import A from "xxx";
new A()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,859评论 18 139
  • JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装...
    紫夏离殇阅读 413评论 0 0
  • 已默认读者了解本篇自言自语的context,且对于module有所了解,对于module的相关扩展说明将穿插在内容...
    蒋启钲阅读 1,121评论 0 4
  • module 什么是module? module就是一个包含js代码的文件,module里默认使用use stri...
    coldtiger阅读 505评论 0 1
  • 王坐在沙发上不知道抽了多少根烟,他有些心浮气躁,内心开始七上八下,他竟然真的对他有那种想法?不!一定是喝多酒的缘故...
    只想随便看看阅读 1,144评论 0 0