ECMAScript6--19.Module模块化

1.模块化

  • 基本概念
  • ES6的模块化语法
    • 模块的引入import
    • 模块的导出export

2.基本用法
需求:
1.有一个变量需要导出去,对外提供一个变量;
2.有一个函数需要其他模块可以拿到(需要暴露出去的);
3.一个类需要暴露出去的;

a.js

//导出用export;导出了3个需要对外暴露的变量、函数、类;
export let A =123;
exprot function test(0){
    console.log('test'):
}
export class Hello{
    test(){
        console.log('class');
    }
}

怎样在其他模块中引入这些模块呢?
index.js

import {A,test,Hello} from a.js(路径)
console.log(A,test,Hello);
//输出:123 
//function test(){console.log('test');}  
//function Hello(){ _classCallCheck(this,Hello);}

3. import * as 存放方法的对象 from 路径
1.如果模块非常复杂,导出的东西特别多,要在导出的文件中一一导出来吗?
2.这个模块虽然导出来很多,但只关心其中的几个;

index.js

//解决第一个问题;
//只需要拿到A这个变量,后两项就可以了不要了,花括号{}中需要哪项就拿哪项
import {A} from a.js(路径)
console.log(A); //123
  • 当内容很多的时候,我们需要再花括号中对应原来的文档一个一个找导出的名称,不现实;

index.js

//*代表导入的所有的东西;
//as 起一个别名;
//as a 那些方法都存放到a这个对象下面,不管有多少个,* as a都可以将它全部导出
import * as a  from a(路径)
console.log(a.A,a.test); 
//123 functon test(){console.log('test');}

4.推荐这种方式
好处:
1.不会因为一些误操作不小心把一些变量导出了;
2.通过export default可以由第三方引用的时候,不需要回看起的什么名称和那个文件一一对应;

a.js

let A = 123;
let test = function(){
    console.log('test');
};
class Hello{
    test(){
        console.log('class');
    }
}

//default 给导出的对象不起名字,随便起都行,把这个权利交给引入方;
export default{
    A,
    test,
    Hello
}

index.js

import aaa from a.js路径;
console.log(aaa.A); //123  
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,868评论 18 139
  • 官方中文版原文链接 感谢社区中各位的大力支持,译者再次奉上一点点福利:阿里云产品券,享受所有官网优惠,并抽取幸运大...
    HetfieldJoe阅读 3,668评论 2 27
  • 认识模块 JS 作为一名编程语言,一直以来没有模块的概念。严重导致大型项目开发受阻,js 文件越写越大,不方便维护...
    faremax阅读 656评论 0 0
  • 原文链接:The state of JavaScript modules 最近 在 twitter 上有很多关于 ...
    沮溺阅读 1,321评论 0 1
  • 雁字非昨岁,陶菊绿蜡肥。 红衣黄落叶,只待故人归。 注:新韵 陶菊:代指菊花。秋菊傲霜,不似百花杀尽。 绿蜡:选自...
    幽小窗阅读 1,333评论 51 53